私は毎分APIにpingを実行し、データをデータベースに記録するPythonアプリケーションを持っています。私はまた、このデータを表示するためのクライアントであるDjango Webアプリケーションを持っています(それはまた、アイドリングしないでください。1つのアプリケーションでノンストップWebとワーカープロセスのHerokuフリー層
最近、Herokuは無料のティアに変更を加え、確認済みのアカウントで1000時間/月を許可しています。私はこれを利用するためにアカウントを確認しました。私には分かりませんが、私の状況でどのように使用時間がカウントされるかです。 Herokuのアプリケーションは、月に750時間、またはノンストップで動作した後に2x750時間に蓄積されますか? Procfile内の2つのラインは別々のダイノスと見なされているため、1か月に750時間が累積されますか?
セットアップ
Procfile:
worker: python api_crawler.py
web: gunicorn api_data_client.wsgi --log-file -
私は、Webプロセスが非アクティブの30分後にアイドルを開始した場合、それはまたそれでワーカープロセスをダウンさせるだろうということが分かりました。これは私にとって望ましい結果ではありません。私は、ワーカープロセスをノンストップで実行する必要があるためです。いくつかの読書の後、私は、 'New Relic'監視アドオンが、アイドリングからウェブプロセスを維持するのを助けることができることを発見しました。これは、毎月1000時間を使い切っていない限りです。
新しいポリシーかもしれませんが、ウェブがスリープ状態になったときに実際に私のワーカーdynoをスリープさせました。これに気付く前に数時間のデータが失われました。 https://devcenter.heroku.com/articles/free-dyno-hours#dyno-sleeping - 「アプリにウェブダイノーがあり、ウェブダイノーが30分間にトラフィックを受信しない場合、ウェブダイノーはウェブダイノーの睡眠に加えて、ワーキンググループのダイノー(存在する場合)も眠ります。 私は言いましたが、別のアプリにWebパーツを入れてしまったので、必要なときにアイドル状態になり、ワーカーを中断させることはありませんでした。 –
うーん、興味深いことに、私は仕事のdynoをアイドル状態にしているWeb dynoアイドリングについて少し気づいていませんでした。しかし、別々のアプリケーションにそれらを入れるというあなたの解決策は良い回避策のように聞こえる。無料のdyno時間の上限はアカウント全体で1,000に制限されているので、両方のアプリケーションが同じプールから無料のdyno時間を消費するように注意してください。 –