gpt4 book ai didi

python - Celery - 如何在工作人员关闭后更新任务状态?

转载 作者:太空狗 更新时间:2023-10-30 00:15:41 27 4
gpt4 key购买 nike

设置

celery 3.0

经纪人=RabbitMQ

场景

任务已经被确认并开始处理,并且有 state=STARTED。然后我想重新启动我的工作人员(将工作人员更新到更新的版本)。重启worker后(使用supervisorctl restart),那些长时间运行的任务都被终止了。但它们的状态仍处于 state=STARTED。如何将它们的状态更新为 FAILURE 或任何其他值? (而且,我不希望在工作人员重新启动后再次执行这些任务。)

尝试过的方法(但没有用)

  • 使用 track_started=True --- 如果使用此选项,任务将在 worker 重新启动后保持在 state=STARTED。如果没有这个选项,任务在 worker 重启后停留在 state=PENDING
  • 使用 CELERY_ACKS_LATE=True --- worker 重新启动后任务保持在 state=STARTED。并再次执行任务,而不是期望的行为。
  • 使用signal(SIGTERM, handler) 和一个处理函数来捕捉信号。可以成功输入处理程序。但是,无论我在处理程序中放入什么东西,它都无法改变任务的状态。状态保持不变,不会更改为 FAILURE。在我试过的处理程序中
    • 引发异常
    • 退出(0)
    • 退出(1)

Celery 是否有任何设置可以使其跟踪正在关闭的任务的状态?

最佳答案

您需要在工作人员关闭时撤销任务。看看this实际代码的问题。

关于python - Celery - 如何在工作人员关闭后更新任务状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57677475/

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