2009-07-25 11 views
2

タスクキューでは、URLフェッチを通じてサーバー側 に接続するコードが実行されます。 私のファイルqueue.yaml。GAEタスク遅延を行う方法をキューに入れますか?

このような設定では、Tuskは一度にすべて同時に実行しました。 具体的には、の要求間に少なくとも5遅延する必要があります 秒。タスクは、5秒を超える差でステージ上で実行する必要があります。 (ただし、 は並行しません)。

queue.yamlに設定されている値は何ですか?

答えて

3

タスク間の最小遅延を指定することはできません。現在はqueue.yamlです。あなた自身のコードで(部分的に)それを行うべきです。たとえば、1つのバケットサイズを指定すると(複数のタスクを一度に実行しないようにする)、タスクが少なくとも5秒間実行されるようにします(開始時にstart=time.time()を取得し、最後にtime.sleep(time.time()-(5+start))を取得します)。うまくいくはずです。そうでない場合は、各タスクレコードをストア内にタイムスタンプで記録し、最後に終了したタスクが5秒前に終了したかどうかをチェックし、その場合は直ちに終了します。

1

他の方法では、タスクデータをテーブルに格納することができます。 task-queueにidパラメータを追加します。テーブルから第1のタスクを取り出し、そのIDをタスクキュー処理サーブレットに渡す。サーブレットで5秒間の終了遅延と次のタスクを実行するには、そのIDと....などを渡します。

関連する問題