2016-11-23 117 views
1

我仍然是一个业余程序员,只是试图了解如何解决这个问题。我正在用Python编写。如何处理时间延迟冲突?

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

所以,伪代码:

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

但这块需要被作为它有(无5分钟的延迟)在每一片输入的附带在立即运行。我应该如何继续?

回答

1

这看起来像是一个完美的地方,一个计时器从threading模块:

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() 
+0

非常好,谢谢! – user1917407