因此,我有一个Django项目,该项目具有要运行的方法的后台任务。 我对procfile进行了以下调整 最初
web: python manage.py collectstatic --no-input; gunicorn project.wsgi --log-file - --log-level debug
现在
web: python manage.py collectstatic --no-input; gunicorn project.wsgi --log-file - --log-level debug
worker: python manage.py process_tasks
尽管添加了worker,但是当我在heroku上部署项目时,它不会运行后台任务。后台任务已创建,可以在django admin中注册,但无法运行。我希望在阅读了多篇文章(其中一篇为https://medium.com/@201651034/background-tasks-in-django-and-heroku-58ac91bc881c)后添加了worker:python mnanage.py process_tasks可以完成工作,但没有。
如果我在heroku cli中执行:heroku运行python manage.py process_tasks,它将仅在最初存在于数据库中的数据上运行,而不在部署后添加的任何新数据上运行。
注意:我使用python manage.py process_tasks来使后台任务在本地服务器上运行。
因此,如果有人可以帮助我在heroku上部署后运行后台任务。
答案 0 :(得分:1)
您的 Procfile
似乎是正确的,您需要使用来自 heroku CLI 的 heroku scale worker=1
来扩展您的工作程序 dyno,或者您也可以从 heroku 仪表板扩展您的工作程序 dyno。
用于通过浏览器扩展工作器动态:-
https://dashboard.heroku.com/apps/<your-app-name>/resources
在 CLI 中使用命令 heroku logs -t -p worker
查看 worker dyno 的状态和日志