2011-06-22 15 views
2

私はAppEngineの起動時間が遅い(寒い)のを避ける方法をすでに読んでおり、from the cookbookという10秒のポーリングを使ってソリューションを実装しましたが、多くは役に立たないようです。Google AppEngineの起動時間

私はPythonランタイムを使用しています。私の要求を処理するためにいくつかのハンドラがインストールされていますが、特に時間がかかります(主にDBフェッチ)。 ホットハンドラがアクティブですが

は、私が遅いロード時間(ハンドラあたり15秒以上まで)を経験し、アプリがしばらくIDLEた後にログが頻繁に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 ...メッセージが表示されます。

これは非常に奇妙です。ホットハンドラーで各URLを個別に取得する必要がありますか?

+0

そのようなアプリをポーリングしないでください。それはリソースを無駄にし、観察したように、起動するのには効果がありません。常にオンになり、ウォームアップ要求がこれを行う方法です。 –

+0

このような目的のためには、あまりにも高価ですが、しばらくの間トラフィックがなくなった後にインスタンスがシャットダウンすると、ウォーミングアップ要求が役に立たなくなります。空のページをロードするために1分ごとにcronを実行しても、実際にはリソースが浪費されるわけではありません。 –

+0

オファーが高すぎると思って申し訳ありませんが、それはそれです。もちろん、それはリソースを無駄にします(そして、あなたは10秒ごとに話しています)。アイドル時にアプリケーションがリソースを占有しているため、他の場所でより便利に割り当てられる可能性があります。すでに見てきたように、 App Engineは、要求に応じて余分なインスタンスをスピンアップします。あなたはアプリをより効率的にする方が良いので、読み込み時間は問題にはならず、本当に重要であれば常にオンになっています。このコモンズの悲劇には貢献しないでください。 –

答えて

5

遅い起動時間が非常に長くなるのを避けるための「適切な」方法は、"always on" optionを使用することです。もちろん、これは無料のオプションではありません(1日0.30ドル)。

+0

私は知っていますが、週末のプロジェクトには理想的ではありません(月9.30 $)。はい、それほどではありませんが、多くの "趣味"アプリを持っている場合は、合計... –

+2

ウォームアップ要求を有効にすることは無料であり、また役立つかもしれません。 – geoffspear

+0

現在、私はちょうど '/ keepalive'ルートハンドラに1分のcronジョブを設定しました。うまく動作するようにも見えます。 –

関連する問題