如何在Heroku平台上部署以下堆栈?
限制肯定在Procfile
。
要使用Celery部署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
进程,但我看不到Celery如何与它一起启动。
答案 0 :(得分:5)
您可以根据需要在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=1
和heroku ps:scale channelsworker=1
来启动其他两个流程。
有关详细信息,请参阅Heroku Procfile docs。