Heroku 上的芹菜在我从 github 自动部署时无法正常关闭



我遇到的问题是在Heroku发布应用程序版本期间Celery的重新启动过程。每次我把代码推送到我的生产GitHub时,它都会这样做:

2020-07-29T15:09:13.725295+00:00 app[worker.1]:   File "<frozen importlib._bootstrap_external>", line 846, in source_to_code
2020-07-29T15:09:13.725295+00:00 app[worker.1]:   File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
2020-07-29T15:09:13.725295+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.8/site-packages/celery/backends/redis.py", line 22
2020-07-29T15:09:13.725296+00:00 app[worker.1]:     from . import async, base
2020-07-29T15:09:13.725296+00:00 app[worker.1]:                   ^
2020-07-29T15:09:13.725296+00:00 app[worker.1]: SyntaxError: invalid syntax
2020-07-29T15:09:14.451767+00:00 heroku[worker.1]: Process exited with status 1
2020-07-29T15:09:14.516084+00:00 heroku[worker.1]: State changed from up to crashed

然后我必须再次手动推送代码,芹菜就可以正常工作了。这种情况每一次都会发生。有没有办法防止芹菜应用程序在其他应用程序关闭之前启动?

错误来自celery<=4.2python>=3.7的问题。async成为python 3.7中的一个关键字。

我不知道为什么这个错误对您来说是暂时的,但解决方案是指定3.6 python版本或升级到celery>=4.3

要回答有关dyno启动的问题:Heroku所做的听起来像preboot对您的应用程序是活动的。这是一种在部署新代码时实际减少停机时间的技术,代价是新旧代码并行运行。您可以按照文章中的说明停用它。

相关内容

  • 没有找到相关文章

最新更新