gpt4 book ai didi

python - celery 打败了 Heroku

转载 作者:太空狗 更新时间:2023-10-30 00:54:21 25 4
gpt4 key购买 nike

我有一个已在 Heroku 上启动的应用程序,但当我启动服务器时,Celery 节拍进程没有启动。

配置文件

web: gunicorn -w 4 connect.wsgi
celery: python manage.py celeryd -c 3 --beat

启动Heroku应用后可以看到worker启动了:

$ 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)

但是,为了让 Celery beat 进程运行,我必须在 Heroku 中明确启动它:

heroku run python manage.py celerybeat

Celery beat 在本地运行良好。这是 Heroku 的限制还是我做错了什么?

最佳答案

如果您在带有单个 dyno 的免费层 heroku 上运行,那么您最好的选择是使用工头的 honcho python 克隆工具来管理基于 Procfile 的应用程序。克隆 https://github.com/nickstenning/honcho , 这将允许你为你的 celery beat/workers fork 多个进程。您仍然会受到 heroku 的免费层级内存 512MB ram 和 dyno 运行时间的限制。所以对于快速开发和 poc 来说,没有什么太重的东西

安装honcho

pip install honcho

确保 honcho 是您的 requirement.txt 的一部分

pip freeze > requirements.txt

创建一个 ProcfileHoncho 存储所有原始 Procfile 内容

ProcfileHoncho

web: gunicorn myDjangoApp.wsgi --log-file -
worker1: celery -A myDjangoApp beat -l info
worker2: celery -A myDjangoApp worker -l info

配置文件

web: honcho start -f ProcfileHoncho

确保您通过配置变量加载您的经纪人 url 并指向您的免费托管经纪人。我相信您可以通过快速谷歌搜索找到一个免费的经纪人

git push heroku master
heroku logs -t

查看日志看是否有任何错误。此时你应该可以开始了。

关于python - celery 打败了 Heroku,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38361040/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com