如何处理延时冲突?

时间:2016-11-23 19:34:26

标签: python asynchronous

我仍然是业余程序员,只是想了解如何解决这个问题。我正在用Python写作。

我的输入始终在不断更新(连续流)。当它出现时,我在最新的条目上运行for循环,验证是否满足一系列条件。如果是这样,那么程序需要等待5分钟才能对该输入执行下一个操作。但它还需要继续检查其余的输入。

所以,伪代码:

inputs = continous_stream_of_input
for input in inputs:
    if conditions == True:
        wait 5 minutes
        do next action

但是这个块需要在进入的每一个输入上运行,一旦进入(没有5分钟的延迟)。我该怎么办?

1 个答案:

答案 0 :(得分:1)

这看起来像是来自线程模块的计时器的理想位置:

import threading

# It can take whatever args you want.
def do_action(a, b, c):
   # It can do whatever you want.

inputs = continuous_stream_of_input
for input in inputs:
    if conditions:
        # 5 minutes is 300 seconds.     args is, again, whatever you want.
        threading.Timer(300, do_action, args=(a, b, c)).start()