0

60秒以内に完了するはずの操作を行っていますが、まれに時間がかかる場合があります(ただし、10分以上かかることはありません)。アプリエンジンのドキュメントには、DeadlineExceededExceptionが発生した場合、永続的に失敗する前に操作を実行する時間が1秒未満であると記載されています。これは、タスクをキューに追加したり、データストアに書き込みを行ったりするのに十分な時間でしょうか?最も安全な方法は、操作の開始時にタスクasync / write a datastore entity(async)を追加し、操作が完了したらキューから削除することだと思います。後者の方法では、API呼び出しの数が2倍になりますが、それだけの価値はありますか?

4

3 に答える 3

2

デッドライン超過エラーが発生した場合にキューへのフォールバックを実装する必要がないように、すべての操作のデフォルトとしてキューを使用することをお勧めします。ユーザーが操作の完了を待つ必要がないという事実とともに、よりクリーンで保守が容易です。これを実現するために、ajax呼び出しでキューをトリガーし、バックグラウンドで結果を取得できるため、ユーザーは操作が完了するのを待つ必要はありません。はい、それだけの価値があります。必要な時間枠を「保証」できるからです。

于 2013-03-26T13:42:35.140 に答える
1

ランタイム環境では、例外を発生させてカスタム応答を準備した後、要求ハンドラーにもう少し時間がかかります(1秒未満)。したがって、それをタスクキューに追加するだけで十分です。

于 2013-03-25T15:31:08.853 に答える
1

クライアントがタスクキューの結果をポーリングし続けたくない場合は、ChannelAPIを確認することをお勧めします。これにより、クライアントへのプッシュ通知を実装できるようになります。

タスクキューの最後に、クライアントに通知を送信して、タスクが処理されたことをクライアントに通知する必要があります。

于 2013-03-27T04:42:42.383 に答える