2011-08-09 15 views
1

アップロードするファイルがあります。要求全体に30秒以上の制限がかかる可能性があるので、タスクキューに移動しました。問題は、タスクでもこのエラーが発生しているということです。
これは、ファイルをアップロードする1回のリクエストであり、これにより30秒の制限に耐えられないためです。この制限を回避する方法はありますか?「バックエンド」ソリューションを使用することを除いて(App Engineはこれを追加しましたが、それは有料機能であり、少し複雑に見えます)?残念ながらファイルを分割することはできません。Google App Engineのタスクキュー:DeadlineExceededError(ファイルアップロード時)

編集:混乱して申し訳ありません。アップロードすると、外国のサーバーにアップロードすることを意味します。このシナリオでは、データストアからデータを取得してGoogle Docs Spreadsheetsにアップロードしています。 Googleドキュメントにアップロードするリクエストは、タスクキューにあっても30秒を超えてタイムアウトしています。

+0

ブロブストアを使用して30秒以上アップロードしても問題はありませんでした。http://code.google.com/appengine/docs/python/blobstore/ – sje397

+0

@Shaun - あなたはファイル処理をタスクキュー?またはアップロード自体(例えば、urlfetchを使用して)? urlfetchを使用している場合は、それに添付されている[quota and limits](http://code.google.com/appengine/docs/python/urlfetch/overview.html#Quotas_and_Limits)をチェックしてください。 –

+0

「ファイルのアップロードをタスクに移動する」ことはできませんので、あなたが聞いていることを少し混乱させます。 Moraesにはあなたの答えがあります。ブロブストアを使用します。 –

答えて

3

DeadlineExceededには2つのタイプがあります.1つはリクエストのタイムアウトによるもので、もう1つはURLFetch呼び出しのタイムアウトによるものです。タスクキューの要求締め切りは10分ですが、URLFetch呼び出しのデフォルトの締め切りは5秒です。したがって、ほとんどの場合、後者を取得することになります。

timeoutパラメータを指定すると、URLFetch呼び出しの期限を延長できます。対話型要求では10秒に制限され、タスクキュー要求では10分に制限されています。

+0

これはそれでした - urlfetchが解決策であったためタイムアウトをグローバルに拡張しました。 –

0

リクエストの時間制限とは別に、サイズの制限が32Mbです。これを超えている場合は、Blobstoreや外部ストレージなどの代替ソリューションを使用する必要があります。

関連する問題