2016-08-14 118 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,现在我的工作进程在后台运行。

相关问题