如何在Django启动时启动Redis队列工作者?
我决定需要使用一个异步队列系统,所以我在设置Redis/RQ/django-rq。我想知道如何在我的项目中启动工作进程。
django-rq提供了一个管理命令,这个命令非常好,长得像这样:
python manage.py rqworker high default low
但是,我想知道在启动django实例的时候能否同时启动工作进程?我只是好奇,还是说我每次都得手动启动它?
谢谢。
2 个回答
0
当我在Heroku上托管Django项目时,Heroku会提供一个叫做Procfile的文件,你可以在里面指定项目启动时要用什么。以下是我的Procfile内容:
web: gunicorn RestApi.wsgi
worker: python manage.py rqworker default
1
Django是在请求和响应的循环中运行的,它是从请求开始的。所以把这样的命令放在Django启动时执行并不好。
我建议你看看supervisord——这是一个进程管理工具,可以在系统启动时自动启动服务和其他一些操作。