我决定我需要使用异步队列系统。我正在设置 Redis/RQ/django-rq。我想知道如何在我的项目中开始工作。
django-rq 提供了一个很棒的管理命令,它看起来像:
python manage.py rqworker high default low
但是当你启动 django 实例时是否可以启动 worker?只是想知道还是我总是必须手动启动?
谢谢。
Django 在请求-响应循环中运行,它从请求开始。所以将这样的命令附加到 Django 启动是个坏主意。
相反,我建议您查看supervisord - 一个流程管理器,它可以在系统启动和其他事情时自动启动服务。
当我在 Heroku 中托管 Django 项目时。Heroku 提供了一个 Procfile,你可以指定从哪个项目开始。这是我的 Procfile:
web: gunicorn RestApi.wsgi
worker: python manage.py rqworker default