如何在Heroku上使用频道和芹菜部署Django



一个人如何在Heroku平台上部署以下堆栈?

  • django
  • django频道
  • 芹菜

限制肯定在Procfile上。

要用芹菜部署django,这将是:

web: gunicorn project.wsgi:application
worker: celery worker --app=project.taskapp --loglevel=info

在用频道部署Django时:

web: daphne project.asgi:channel_layer --port $PORT --bind 0.0.0.0 -v2
worker: python manage.py runworker -v2

web进程可以使用ASGI,但是worker过程将由频道使用,我看不出如何与芹菜一起开始。

您可以在procfile中拥有尽可能多的条目。唯一一个特别的是" Web",因为这是Heroku希望收到Web请求的唯一一个,并且它将自动为您启动。您可以在其余的地方使用自己的名字:

web: gunicorn project.wsgi:application
celeryworker: celery worker --app=project.taskapp --loglevel=info
channelsworker: python manage.py runworker -v2

现在您可以执行heroku ps:scale celeryworker=1heroku ps:scale channelsworker=1来启动其他两个进程。

有关更多信息,请参见Heroku Procfile文档。

最新更新