2012-01-09 2 views
2
TaskOptions taskOptions = TaskOptions.Builder.withUrl("/mytask"); 
options.param("a", a); 
options.param("b", b); 
options.param("c", c); 
options.param("d", d); 
options.param("e", e); 
options.param("f", f); 
options.param("g", g); 
options.param("a1", a1); 
options.param("b1", b1); 
options.param("c1", c1); 
options.param("d1", d1); 
options.param("e1", e1); 
options.param("f1", f1); 
options.param("g1", g1); 

いくつのオプションパラメータを指定できますか?上限はありますか?Google App Engineタスクに追加できるパラメータの最大数はいくらですか?

答えて

0

release notes for version 1.5.0 of the SDKは、次の言う:

タスクキューのペイロードの制限が増加しています。キューは、タスクごとに100KBをサポートします。

QueueConstants classあなたはサイズを取得するために呼び出すことができますmaxPushTaskSizeBytes()方法があります。 source code for QueueConstats.java

は100Kであると限界を確認:

private static final int MAX_PUSH_TASK_SIZE_BYTES = 100 * (1 << 10); 
2

JVMインスタンスに割り当てられる最大メモリには上限があり、数十から数百MBの範囲であればどこでもかまいません。

この制限を超える前に、基本的にHTTP GETまたはPOSTリクエストを設定しているため(TaskOptionsの設定に応じて)、プラットフォーム/クライアント固有の制限がある場合があります。最終的に要求を処理するクライアントmay have its own limits on size

しかし、最悪の場合でも、GET形式のURL /要求を使用して、少なくとも2 KB分のデータを渡すことができます(複数のパラメータに分散されているか1つに分散されているかにかかわらず)。これは、App EngineがInternet Explorerと同じリクエスト処理コードを不可解に使用する場合です。私はそれがGoogleコードがそれよりかなり多くを処理する可能性が非常に高いと思う。

なぜ、試してみるのはなぜですか?最後に失敗するまでますます長いタスクをキューに入れ、失敗をトリガーするリクエストのサイズをログアウトするループを作成してください。

関連する問題