0

Google App Engine を使用して、cron ジョブを使用して Web ページをダウンロードして保存しています。

5 秒後、Dealine 超過エラーが発生します。

どうすればエラーを回避できますか。このサイトを検索すると、urlfetch の制限時間を延長できます。しかし、問題を引き起こしているのは urlfetch ではありません。タスクを5秒以上実行できないのは事実です。

たとえば、この修正を試してみましたが、cron ジョブではなく、自分でページを実行している場合にのみ機能します。

HTTPException: URL からの HTTP 応答の待機中に期限を超過しました: #deadline

4

1 に答える 1

3

Cron ジョブは最大 10 分間実行できますが、これは URLFetch がそれまでにタイムアウトできないという意味ではありません。URLFetch のデフォルトのタイムアウトは正確に 5 秒ですが、これを増やすことができます。

"リクエストの期限を設定できます。これは、サービスが応答を待機する最長時間です。デフォルトでは、フェッチの期限は 5 秒です。HTTP リクエストの最大期限は 60 秒で、タスク キューの場合は 10 分です。 URLConnection インターフェースを使用する場合、サービスは接続タイムアウト (setConnectTimeout()) と読み取りタイムアウト (setReadTimeout()) を締め切りとして使用します。

参照: https://developers.google.com/appengine/docs/java/urlfetch/?csw=1#Requests

「cron ジョブは、HTTP GET リクエストを使用して、特定の時刻に URL を呼び出します。cron によって呼び出された HTTP リクエストは、最大 10 分間実行できますが、他の HTTP リクエストと同じ制限が適用されます。」

参照: https://developers.google.com/appengine/docs/python/config/cron

さらに、非常によく似た問題でこの古いスタックオーバーフローの質問をチェックしてください。 Google App Engine の cron ジョブに 10 分の制限がある場合、通常の 30 秒後に DeadlineExceededError が発生するのはなぜですか?

于 2014-08-05T19:07:58.757 に答える