2016-08-25 10 views
8

私はHerokuでホストしたいと思うシンプルなpythonスクリプトを持っており、Herokuスケジューラを使って10分ごとに実行します。だから誰かが私がスケジューラでレーキコマンドに入力する必要があり、どのように私はHerokuのProcfileを変更する必要があります私を説明することができますか?Herokuでシンプルなpythonスクリプトを継続的に実行

+0

ホープ誰かがこの便利なhttps://github.com/nabinkhadka/simple-flask-heroku-appに – Nabin

答えて

12

確かに、あなたはいくつかのことを行う必要があります。

  1. はあなたの依存関係を一覧表示し、プロジェクトのルートにrequirements.txtファイルを定義します。これは、HerokuがPythonアプリケーションを使用していることを「検出」するために使用するものです。

  2. Herokuスケジューラアドオンでは、Pythonスクリプトの起動に必要なコマンドを定義するだけです。おそらくpython myscript.pyのようなものになるでしょう。

  3. 最後に、適切なHeroku PORTをリッスンする何らかの種類のWebサーバーが必要です。そうしないと、Herokuはアプリケーションが機能していないと判断し、「クラッシュ」状態になります。あなたが望むものではありません。このHerokuの要件を満たす、あなたはこのような本当に簡単フラスコWebサーバーを実行することができます...

コード(server.py)するには:

from os import environ 
from flask import Flask 

app = Flask(__name__) 
app.run(environ.get('PORT')) 

次に、あなたのProcfileで、ちょうど言う:web: python server.py

そして、それはちょうど約それを行う必要があります=)

+1

おかげで多くのことを見つけます!これは私のために働いた素敵な簡潔なチュートリアルでした。 – rosstex

+0

Herokuは、スケジューラが常に信頼できるとは限らないと警告しています。セロリーの使用を検討することをお勧めします。 – joshlsullivan

+1

このシナリオではWebサーバーは不要で、リソースを無駄にしています。 heroku ps:scale web = 0このコマンドを使用すると、Webサーバーを0インスタンスにスケールダウンできます。 –

関連する問題