我有一个经常使用daemon.runner运行的程序。它不断地处理来自stdin
的数据,我使用syslog作为输出。你知道吗
代码如下所示:
class App():
lines = 0
def __init__(self):
# Config
def run(self):
while True:
with open(PIPE_NAME) as pipe:
for line in pipe:
# Do stuff
self.lines = self.lines + 1
# Reopen pipe if required (or die if it's unavailable)
我希望定期输出统计数据,例如每15分钟输出一次。我可以检查每次处理一行的时间,但是传入的数据项之间偶尔会有很大的间隙。你知道吗
有什么方法可以以固定的间隔定期输出这个例子中的self.lines
?你知道吗
每一次迭代,都要检查自上次打印以来是否已经过了15分钟。如果是,打印并记录上次打印的时间。你知道吗
使用^{} 循环以确保至少在每个打印间隔检查时间(本质上是“读取超时”):
您可以使用多线程:
这个解决方案是快速的,不需要等待任何东西,它只是做它的工作,没有其他。我已经测试过一点了,但是如果有什么问题,就说出来。我真的希望这有帮助。:)
相关问题 更多 >
编程相关推荐