我在 Heroku 上托管了我的 Django 应用程序,但由于一些限制,我从 Heroku 转移到了基于云的服务器。我按照本教程在 Python 中运行后台任务。一切都运行良好,除了我必须手动运行python worker.py
才能启动工作进程。
在 Heroku 上,我们可以在应用程序启动时使用 Procfile 来运行进程,但现在我在运行 ubuntu 14.04 的基于云的服务器上。那么 Procfile 的替代方案是什么?
工人.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()