2016-11-23 9 views
1

私はまだアマチュアのプログラマーで、この問題へのアプローチ方法を理解しようとしています。私はPythonで書いています。時間遅延の競合を処理するにはどうすればよいですか?

常に更新されている入力があります(連続ストリーム)。それが来ると、一連の条件が満たされているかどうかを検証する最新のエントリに対してforループを実行します。そうであれば、プログラムは5分間待ってから、その入力部分で次のアクションを実行する必要があります。しかし、残りの入力をチェックし続ける必要もあります。

だから、擬似コードは:

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

が、このブロックは、それが(5分の遅延なし)に来るとすぐに、入ってくる入力の各部分上で実行する必要があります。私はどのように進めるべきですか? threadingモジュールからのタイマーのための最適な場所のように見えます

答えて

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

優れた、ありがとうございました! – user1917407

関連する問題