2016-11-23 122 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