我有 AWS ElasticBeanstalk 使用的以下 procfile:
web: gunicorn --bind :8000 --workers 1 --timeout 30 --graceful-timeout 35 --capture-output --worker-class eventlet wsgi:app
celery: celery --app wsgi.celery worker --concurrency 500 --pool eventlet
我在几天前修复了我的代码中的一个错误,但即使已推送新更改(我可以看到我在这之间所做的其他更改反映在 web
部分),我仍然收到错误通知(来自 Sentry),说明我之前的错误发生了。
在 Sentry 调试问题显示了罪魁祸首代码,在搜索我当前的代码时,我找不到它(因为我已经修复了它),但问题仍然存在。
我怀疑由于某些原因,Elastic Beanstalk 没有重新启动 - 或考虑 - celery
的新代码,而是使用旧代码。
在部署新版本时,有没有办法告诉 EB 重新启动/重新加载 celery
工作器(甚至两者)?
我在 .platform/hooks
中实现了一些脚本,所以我可以再添加一个来实现这一点。
提前致谢。