【问题标题】:How to deploy Django with Channels and Celery on Heroku?如何在 Heroku 上使用 Channels 和 Celery 部署 Django?
【发布时间】:2018-07-15 13:21:03
【问题描述】:

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

  • 姜戈
  • Django 频道
  • 芹菜

限制肯定在Procfile

用 Celery 部署 Django 应该是这样的:

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

在使用 Channels 部署 Django 时:

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

web 进程可以使用 ASGI,但 worker 进程将被 Channels 使用,我不知道 Celery 可以如何与它一起启动。

【问题讨论】:

    标签: django heroku celery


    【解决方案1】:

    您可以在 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 docs 了解更多信息。

    【讨论】:

    • 你是我的英雄。非常感谢先生。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-09
    • 2020-05-17
    • 2017-05-06
    • 2020-09-07
    • 2022-11-23
    • 2017-06-24
    • 1970-01-01
    相关资源
    最近更新 更多