2016-08-14 139 views
0

我在Heroku上託管了我的Django應用程序,但由於極少的限制,我從Heroku移到了基於雲的服務器。我遵循這個tutorial在Python中運行後臺任務。一切運行良好,除了我必須手動運行python worker.py來啓動工作進程。在應用程序啓動時運行python-rq工作進程

在Heroku上,我們可以使用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

謝謝!我最終使用暴發戶。 – Addicted

1

我結束了使用暴發戶。我創建使用sudo nano \etc\init\rqworker.conf用下面的代碼創建一個新的配置文件rqworker.py

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 service rqworker start,現在我的工作進程在後臺運行。

相關問題