3

我们开发了一些小服务来像 unix 守护进程一样运行。

我们的第一个实现依赖于扭曲的反应器。reactor 实例是我们的工件,用于在子进程调用后保持 OS 进程处于活动状态并不间断地运行。

subprocess最近,我们删除了这些模块的 Twisted 依赖项,保留了在调用后保持进程运行的必要性。我们while True: time.sleep(.1)在“main()”方法的末尾添加了一个 ' ' 语句,它工作正常。

time.sleep(.1)考虑到每分钟约 600 次唤醒事件,通过调用,我们的性能正在浪费性能。这对我们的应用程序性能不利。如果我们更换

while True:
    time.sleep(.1)

经过

while True:
    pass

它消耗了大量的 CPU 时间(大约 i5 的 1.7%,持续)。

有更好或平衡的替代解决方案,CPU 时间占用更少,并且对以下选项具有响应性能?

reactor.run()

while True:
    time.sleep(.1)

我在 stackoverflow 和 web 上找到了一些类似的答案和讨论,但没有找到关于它考虑 python 的明确讨论。

4

1 回答 1

1

也许解决方案是简单地使用一个模块,该模块是......曾经*为此进入标准库。

https://pypi.python.org/pypi/python-daemon/

显然 3143 已被推迟,但 pypi 链接是到 pep 的实现。

于 2013-11-09T13:22:47.447 回答