4

1 つの Google App Engine バックエンドでいくつの並列バックグラウンド スレッドを開始できますか? 許可されている並列スレッドの量に関する情報は見つかりませんでした。私はGAEにJavaを使用しています。

ドキュメントで説明されているように、新しいスレッドを開始します: [1]

return ThreadManager.createBackgroundThread(new Runnable() { ... });

アプリケーションを実行すると、しばらくすると (新しいスレッドの作成時に) 次の例外がスローされます。

com.google.appengine.api.system.SystemFailureException: An unknown error occurred

この [2] の問題では、API が割り当て量を超えている場合にこの例外が表示されることが言及されています。したがって、スレッドを作成できますが、一定時間後に例外が表示されます。そのため、バックエンドにスレッドの制限があると思います。

[1] https://developers.google.com/appengine/docs/java/backends/overview#background_threads

[2] http://code.google.com/p/googleappengine/issues/detail?id=7398

4

3 に答える 3

2

私の問題は、バックエンドの API 制限でした。必要な数のスレッドを開始できましたが、API の制限 (100 同時呼び出し) に達すると、新しいスレッドを作成できなくなりました。クォータと制限については、ドキュメントに記載されています。

アプリケーションのパフォーマンスを高速化するために API 呼び出し (データベース、Google クラウド ストレージ) を減らしたところ、例外はなくなりました :) .

于 2013-04-09T11:47:02.533 に答える
1

例外があるため、Java を使用していると仮定します。

どのようにスレッドを作成していますか?ThreadManager を使用する必要があります (サポートされていない「new Thread()」を呼び出すのではなく)。

バックグラウンド スレッドとは、バックエンドのコードを意味しますか? バックエンド タスクでバックグラウンド スレッドを開始する必要があります。

ちなみに、各リクエストは 50 スレッドに制限されています。

スレッドについてはこちらをご覧ください。

于 2012-12-18T22:32:59.953 に答える