1

私は、GAE アプリケーションで GET リクエストをスケジュールする方法を研究してきました。具体的には、別のアプリの API を指す別の URL をフェッチすることによって、アプリケーションが要求されてから 1 時間後に応答するようにしたいと考えています。

遅延タスクはこれを処理する方法ですか?

また、タスクには、実行の最も早い時間を指定する「eta」引数があることもわかりました。これは「_countdown」よりも優先されますか?

またはCronジョブを調査しますか?これらの GET リクエストは定期的に行われるわけではないので、Cron ジョブが適切かどうかはわかりません。

ありがとう!必要に応じて明確にしてください。

4

2 に答える 2

2

はい、それは良い方法です_countdown。遅延呼び出しで を設定するだけで済みます。これは、このタスクが実行されるまで待機する秒数です。

ドキュメントからの例:

deferred.defer(do_something_expensive, _countdown=3600, _queue="myqueue")

または、タスク APIを使用して、このタスクをいつ、どのように正確に実行するかについて、さまざまなパラメーターをすべて設定することもできます。あなたに最も適したものは何でもetaまたはを使用できますがcountdown、GAE の観点からはまったく同じです。

于 2012-09-29T16:32:43.757 に答える
-1

2番目の精度(たとえば、分精度)を望まない限り。リクエストのキューを実装するデータストアにリクエストを追加します。次に、cronジョブを毎分実行して、その期間にスケジュールされたリクエストを探します。次に、リクエストを実行するためのタスクを送信します。同じタスクが再送信される可能性が低いように、タスクに名前を付けます。タスクは数回再​​試行でき(エラーが発生した場合)、キューでリクエストを完了としてマークできます。

このようにして、スケジュールされたリクエストをいくつでも処理できます。何千ものタスクで終わることはありません。リクエストが実行されるかどうか、いつ実行されるかなどを知ることができます...

于 2012-09-30T00:30:11.333 に答える