celery - Celery - 使用 Task.retry() 处理 WorkerLostError 异常
问题描述
我正在使用芹菜 4.4.7
我的一些任务使用了太多内存并且被 SIGTERM 9 杀死。我想稍后重试它们,因为我在机器上运行并发,它们可能会再次运行正常。但是,据我了解,您无法捕获任务中抛出的 WorkerLostError 异常,即这不会像我预期的那样工作:
from billiard.exceptions import WorkerLostError
@celery_app.task(acks_late=True, max_retries=2, autoretry_for=(WorkerLostError,))
def some_task():
#task code
我也不会不使用task_reject_on_worker_lost
,因为它会使任务重新排队并且不应用 max_retries。
处理我的用例的最佳方法是什么?
在此先感谢您的时间 :)
加尔
解决方案
推荐阅读
- angular - p-schedule : 如果一个事件叠加在另一个事件上,则不能删除它
- command-line - pycharm,pytest的编辑配置参数不起作用
- ruby-on-rails - ApplicationController 中的动态/正则表达式参数
- r - 有没有比 file.info() 更快的替代方法?
- powerbi - 将每行具有不同度量的 Tableau 报表转换为 Power BI
- reactjs - react-hook-form 不发送 PasswordConfirm
- c - 如何使ASCII表中字母的数量等于C中的数字范围的条件?
- angular - RxJS finalize():将最后发出的值传递给回调
- pine-script - 仅在布林带中线以上购买
- async-await - 在 Deno 的文件中等待