2014-03-28 105 views
2

我决定我需要使用一个异步队列系统。并设置Redis/RQ/django-rq。我想知道如何在我的项目中启动员工。如何在django启动时启动redis队列工作?

Django的RQ提供了一个管理命令,它是伟大的,它看起来像:

python manage.py rqworker high default low 

但有可能当你开始Django的实例启动工作?想知道或者我总是需要手动启动吗?

谢谢。

回答

1

Django在请求响应周期内运行,并且从请求开始。因此,将这样的命令附加到Django启动上是一个坏主意。
取而代之的是,我建议您查看supervisord - 一个流程管理器,它可以在系统启动时自动启动服务以及其他任务。

+0

我不小心删除了我的旧评论。我想提供一些比谢谢更有用的东西。我选择rq的主要原因之一是它很容易设置,它支持调度任务(rq-scheduler)我遇到的问题是调度系统,你只能给它一个开始时间和间隔。我需要cron类型调度。尽管我很害怕安装/学习,但我转向了芹菜。事实证明,文档很好,这并不坏。我接受了你的建议,并停止尝试从django开始,并使用芹菜提供的init.d脚本。 –

+0

使用Procfile查看下面的honcho - https://github.com/nickstenning/honcho –

0

当我在Heroku中主持Django项目时。 Heroku提供了一个Procfile,您可以指定以项目开始的内容。 这是我的Procfile:

web: gunicorn RestApi.wsgi 
worker: python manage.py rqworker default 
+0

这可以使用https://github.com/nickstenning/honcho在本地启动 –