【发布时间】:2020-11-25 12:58:50
【问题描述】:
我目前正在使用 AWS EBS,但切换到 Kubernetes 来管理我们的 celery 工作池。根据 Celery 文档,当您想停止 celery 工人时,有two types of signals that can be sent to the worker。一个是TERM,另一个是KILL。当使用 TERM 时,它会等待工作人员在停止之前完成当前正在执行的工作。当KILL用于立即停止,这会导致任务丢失。我的问题是在缩小工作池时 Kubernetes 自动缩放,我如何确保将 TERM 发送给工作人员而不是 KILL?我在使用 AWS EBS 时遇到了这种缩减问题,其中 Celery 花在缩减时显示任务丢失。
【问题讨论】:
-
我也有同样的问题!我根据任务队列中的消息数量自动扩展了芹菜工人的部署。一旦所有消息都被工人消费掉,它就会开始缩减规模,而 celery 工人仍然有未完成的任务在其中运行。有什么解决办法吗?
标签: python kubernetes amazon-elastic-beanstalk celery