Jar*_*uen 5 python heroku celery django-celery celerybeat
我有一个我在Heroku上启动的应用程序,但是当我启动服务器时,Celery节拍过程无法启动.
Procfile
web: gunicorn -w 4 connect.wsgi
celery: python manage.py celeryd -c 3 --beat
Run Code Online (Sandbox Code Playgroud)
在Heroku应用程序启动后,可以看到工作人员已启动:
$ heroku ps
=== web (Free): gunicorn -w 4 connect.wsgi (1)
web.1: starting 2016/07/13 16:17:18 -0400 (~ 9s ago)
=== celery (Free): python manage.py celeryd -c 3 --beat (1)
celery.1: up 2016/07/13 16:17:25 -0400 (~ 2s ago)
Run Code Online (Sandbox Code Playgroud)
但是,为了让Celery击败进程运行,我必须在Heroku中明确地启动它:
heroku run python manage.py celerybeat
Run Code Online (Sandbox Code Playgroud)
Celery beat在当地推出.这是Heroku的限制还是我做错了什么?
如果您在具有单个 dyno 的免费层 heroku 上运行,那么您最好的选择是使用 foreman 的 honcho python 克隆,这是一种用于管理基于 Procfile 的应用程序的工具。克隆https://github.com/nickstenning/honcho,这将允许您为 celery beat/workers 分叉多个进程。您仍将受到 heroku 的免费层内存 512MB ram 和 dyno 运行时间的限制。所以对于快速开发和 poc 来说没有什么太大的好处
安装 honcho
pip 安装本站
确保 honcho 是您的 request.txt 的一部分
pip冻结>需求.txt
创建一个 ProcfileHoncho 存储您所有的原始 Procfile 内容
ProcfileHoncho
web: gunicorn myDjangoApp.wsgi --log-file -
worker1: celery -A myDjangoApp beat -l info
worker2: celery -A myDjangoApp worker -l info
Run Code Online (Sandbox Code Playgroud)
配置文件
web: honcho start -f ProcfileHoncho
Run Code Online (Sandbox Code Playgroud)
确保您通过配置变量加载您的代理 URL 并指向您的免费托管代理。相信您可以通过快速的谷歌搜索找到一位免费经纪人
git push heroku master
heroku logs -t
Run Code Online (Sandbox Code Playgroud)
查看日志,看看它们是否有任何错误。在这一点上,你应该很高兴。
| 归档时间: |
|
| 查看次数: |
1067 次 |
| 最近记录: |