0

単一のリクエストが来ると、この警告が表示されます。リクエストを処理した直後にプロセスがシャットダウンされるようです。

画像を投稿できないので、いくつかのログをコピーして貼り付けます。

2012-11-25 09:12:37.441 /task/process-block 200 1609ms 0kb AppEngine-Google; (+http://code.google.com/appengine)
I 2012-11-25 09:12:37.440 This request caused a new process to be started for your application, and thus caused your application code to be loaded for the first time. This requ...

2012-11-25 09:12:26.054 /task/process-block 200 2160ms 0kb AppEngine-Google; (+http://code.google.com/appengine)
I 2012-11-25 09:12:26.053 This request caused a new process to be started for your application, and thus caused your application code to be loaded for the first time. This requ...

2012-11-25 09:12:14.036 /task/process-block 200 3156ms 0kb AppEngine-Google; (+http://code.google.com/appengine)
I 2012-11-25 09:12:14.036 This request caused a new process to be started for your application, and thus caused your application code to be loaded for the first time. This requ...

私の理解では、リクエストが来ない場合、処理は少なくとも 15 分間留まる必要がありますが、上記のログは、プロセスが 10 秒以内に強制終了されたことを示しています。現在、動的タイプのインスタンスが 1 つしか表示されず (チェックアウト時に実行中のインスタンスが表示されない数時間前)、そのインスタンスは前のインスタンスの処理が完了しても要求に応答しません。代わりに、新しいインスタンスが生成され、リクエストに応答します。

バグなのか設定の問題なのか 私のアプリは python 2.7 スレッド セーフを使用しており、アイドル インスタンスの最大値を 1 に設定し、保留中の最小レイテンシを 15.0 秒に設定しています。

アップデート:

Max Idle Instances を 50 に変更しましたが、問題はまだ残っています。

4

1 に答える 1

0

2日間実行すると、問題は解消されます。キューにプッシュされたタスクは、インターネットからデータを取得する必要があるため、かなり時間のかかるタスクであり、通常は1秒以上かかります。

これで、タスクの実行時間はデータプロデューサーに追いついたため、平均で200ミリ秒に短縮されました。そのため、ほとんどの場合、処理して返されるデータがなくなったことがわかりました。

したがって、GAEがリクエストを受信すると、最初にこのリクエストを1秒以内に実行できるかどうかを予測します。答えが「はい」の場合、GAEは既存のプロセスを使用して対処します。または、新しいプロセスを開始し、他の短時間のリクエストを処理するために古いプロセスを保持します。これは、常に新しいプロセスが存在する理由を説明する可能性があります。また、一部のインスタンスの経過時間がかなり長いのに、多くのリクエストが処理されない理由も説明できます。

于 2012-11-27T15:34:35.570 に答える