2016-08-14 19 views
0

私はHerokuでDjangoアプリケーションをホストしましたが、いくつかの制限があるため、私はHerokuからクラウドベースのサーバに移行しました。私はこのtutorialを実行して、Pythonのバックグラウンドタスクを実行しました。私は手動でpython worker.pyを実行してワーカープロセスを起動する必要がある以外はすべて正常に動作しています。アプリケーション開始時にpython-rqワーカープロセスを実行

私たちは、アプリケーション起動時にProcfileを使用してプロセスを実行できますが、今はubuntu 14.04を実行しているクラウドベースのサーバーです。では、Procfileの代替手段は何ですか?

worker.py

import os 

import redis 
from rq import Worker, Queue, Connection 

listen = ['high', 'default', 'low'] 

redis_url = os.getenv('REDISTOGO_URL', 'redis://localhost:6379') 

conn = redis.from_url(redis_url) 

if __name__ == '__main__': 
    with Connection(conn): 
     worker = Worker(map(Queue, listen)) 
     worker.work() 

答えて

0

成り上がり、systemdにまたはスーパーバイザーのようなプロセスマネージャを使用してください。

+0

ありがとうございます!私はupstartを使用して終わった。 – Addicted

1

私はアップスタートを使用して終了しました。その後、私はちょうどサービスsudo service rqworker startを開始し、現在、私のワーカープロセスがバックグラウンドで実行されている

description "Job queues for directory" 

start on runlevel [2345] 
stop on runlevel [!2345] 

respawn 
setuid myuser 
setgid www-data 

exec python3.5 worker.py 

:私は、次のコードでsudo nano \etc\init\rqworker.confを使用して、新しい設定ファイルrqworker.pyを作成しました。

関連する問題