私の前にある多くのものと同じように、AppEngineの実行期限は60秒です。AppEngine上の意図的に遅い読み込みのPythonアプリケーション
Process terminated because the request deadline was exceeded.
私の使用例は、私が見てきたものとは少し異なります。私はトグルスイッチを動かすことができるウェブフォームを持っています。このトグル状態を1または0で表すGETページがあります。ラズベリーパイはこのページを10秒ごとにヒットし、フロントゲートのライトをトグルの状態と一致させます。私はこれをHTTPでやっています(Piは4Gモデム上にあり、他のポートのトラフィックをファイアウォールします)。
「状態が変更されました」というハンドラを作成する今日のアイデアがありました。単一の要求に
iterations = 0
current_state = get_state()
while iterations < 600
if get_state != current_state:
return "Change!"
iterations = iterations + 1
time.sleep(1)
return "No change"
これは私の4Gのオーバーヘッドを低減するであろう:Piはこのような何かをしたハンドラを取得し、最初のブート時の状態と一致しますが、その後、それは(ロードするために、多くの場合、非常に遅い)ヒットなります状態が変更された場合、ページはすぐに読み込まれ、すぐに処理できます。何も変わっていなければ、プロセスをもう一度呼びますが、今は10秒に1回の代わりに10分ごとに1回実行します。
上限を50に設定しても、これを構築でき、オーバーヘッドを節約し、応答待ち時間を改善します。しかし、デッドラインがどのように働いているかについて私が見逃していることがありますが、それは私がGAEでこれをもっと長期間行うことができるでしょうか?