2

私の JSP Web アプリケーションでは、レポートを処理すると、常に DeadlineExceededException が発生します。そのため、プロセスをアプリ エンジンのタスク キューに移動しました。ただし、タスク キューを使用すると、レポートが生成されず、エラー メッセージが表示されません。タスク キューは DeadlineExceededException の適切な解決策ですか、またはタスク キューには処理に 1 分の時間制限があります。

私の queue.xml は以下のように構成されています

<?xml version="1.0" encoding="UTF-8"?>
<queue-entries>
    <queue>
        <name>default</name>
        <rate>5/s</rate>
    </queue>
    <queue>
        <name>subscription-queue</name>
        <rate>5/s</rate>
    </queue>
    <queue>
        <name>excel-generator-queue</name>
        <rate>5/s</rate>
    </queue>
</queue-entries>
4

2 に答える 2

1

考慮すべき2つの期限があります。1つは、実行する個々のApp Engine API呼び出しの期限、もう1つはタスク処理の全体的な期限です。

App Engine APIを呼び出すと、呼び出しが約5秒以内に完了せず、DeadlineExceededExceptionが発生する場合があります。もう一度電話をかけるオプションがあります。URLフェッチやリースタスクなどの一部のAPIでは、期限を指定できます。例外をキャッチすると、どのコードがタイムアウトしたかがわかります。

タスクキューを使用する場合、バックエンドを使用していない限り、タスク処理の全体的な期限は10分です-https://developers.google.com/appengine/docs/python/backends/ タスクキューを使用しない場合、全体的な期限わずか60秒です。)

質問には「レポートは生成されません」と記載されています。タスクが実行されているとき、進行状況レポートまたは最終レポートを表示するためのWebブラウザーはありません。レポート生成にログを追加します。生成されたレポートをデータストアに保存するか、電子メールで送信します。

于 2012-10-03T04:12:00.367 に答える
1

タスク キューのタイムアウト制限は、1 分をはるかに超えています。(少なくとも 10 分は必要です。詳しくは、GAE のドキュメントを読む必要があります)。

また、プッシュまたはプル キューを使用しているかどうか、および選択に満足しているかどうかを確認してください。あなたの設定は、デフォルトのキュータイプのプッシュ用である可能性があると思います。

エンキューされたタスクによって呼び出されるコードにログ コードを配置しましたか? これにより、コードが実行されているかどうかを確認できます。

于 2012-09-28T10:42:50.910 に答える