1

私のハンドラーの多くは、重要ではないバックグラウンド処理を行うために、タスクをタスク キューに追加します。この処理は重要ではないため、taskqueue.add() の呼び出しで例外がスローされた場合、私のコードはそれを無視します。

今夜、タスク キューは約 30 分間ダウンしているように見えました。私のハンドラーは失敗を正しく無視しましたが、taskqueue.add() 呼び出しがタイムアウトするまでに約 5 秒かかり、ページの残りの処理に進みました。したがって、これにより、サイトの実行が非常に遅くなりました。

では、タスクを非同期的にキューに入れることは可能ですか?つまり、追加が成功したかどうかを確認するのを待たずに、タスクを追加する方法を意味しますか?

あるいは、そのタイムアウトを 5 秒からたとえば 1 秒に短縮する方法はありますか?

ありがとう。

4

3 に答える 3

1

新しい taskqueue メソッドcreate_rpcとを使用できますadd_async。add が成功するかどうか気にしない場合は、単純に呼び出しadd_asyncて結果を無視します。1 秒だけ待ちたい場合は、 を呼び出すときに期限を設定しcreate_rpc、戻り値を の RPC 引数として使用しますadd_asyncget_resultタスクが正常に追加されたかどうかを確認するために呼び出します。

于 2013-03-28T03:34:20.897 に答える
1

addメソッドの下の RPC 呼び出しは同期ブロッキングAPI 呼び出しであるため、それについては何もできないと思います。

Capabilities APIを使用してチェックを追加してみてください。

于 2011-03-28T19:38:52.133 に答える
0

TQ の追加は次のリリース (実験的機能) と非同期になると GAE が発表したことは間違いありません。

于 2013-03-28T18:41:34.097 に答える