2016-06-18 2 views
-1

私はリストに挿入するストリーミングAPIからデータを受信して​​います(このリストは1日約8時間のデータを受け取ります)。その後、一定期間後に計算を実行してから、計算を別のリストに入れ、別の期間待ってそのリストを計算して第3のリストを作成します。 Pythonでこれを行う最善の方法は何ですか?擬似コード:Pythonのタイムドリストの作成

FirstList(): 
''' Wait 15 minutes to create first list''' 

SecondList(): 
'''Calculate results from first list and create a second list after given period of time''' 

ThirdList(): 
''' Calculate results from SecondList and create third list after a given period of time''' 
+0

お試しいただいた内容をお見せできますか? – user2027202827

+1

あなたのメソッドや関数にはhttps://pypi.python.org/pypi/timeout-decoratorを使用してください – dmitryro

+0

http://stackoverflow.com/questions/3433559/python-time-delaysの重複はありますか? –

答えて

0

あなたは、PythonのThreadingモジュールからTimerクラスを使用することができます。

あなたのプログラムは、このようになります:

from threading import Timer 

def buildLists(): 
    global list1, list2, list3 
    list1 = FirstList() 
    # Calculate other two lists 
    list2 = SecondList() 
    list3 = ThirdList() 

# Run buildLists after 15 minutes (900 seconds) 
listTimer = Timer(900.0, buildLists) 
listTimer.start() 

これが機能する方法は、完了時に関数を実行Timerインスタンスを作成することです。

「あなたが意味するものを正確にはわかりませんでした」最初のリストの結果を計算し、特定のニーズに合わせてセクションを修正する必要があるように、指定した期間の後に2番目のリストを作成しますしかし、一般的な方法はあなたのために働くはずです。

+0

@ rp.beltranというアイデアをありがとうございますが、コードが正しく理解されていれば、15分遅れて最初のリストが作成されます。私は自分自身をとてもうまく説明しなかった。もう一度試してみましょう。私はlist1に15分のデータストリームの値が含まれている必要があります。 list1は15分分のデータ(例えばlist1 [[15minsofdata]、[second15minsofdata] ...))のネストされたリストを含む必要があり、そのリストの作成を止めることはできません。そこから、list1の各入れ子リストから必要な値を抽出し、それらの値をlist2に挿入して、別の入れ子リストを作成します。 – namor

+0

要約:len(list1)== 3のとき、list1の3つのネストされたリストから計算された結果、listen.append(x)、len(list2)== 3、r = 3はlist2に、次にlist3.append(r)にリストされます。 15分待ってlist1の最新の3リストを計算し、list2に追加します。 – namor

関連する問題