我在查芹菜代码。一旦任务函数通过(task_trace)运行,就会调用acks_late。
但是,在redis中,一旦接收到任务(即从redis队列弹出),redisworkercontroller就会为它创建一个任务请求。如何在工作节点死亡时再次排队?

最佳答案

如果消息未被确认,则不会再次排队(如果工作进程死亡,则不可能)。它们确实存在于redis中,未被确认)。
根据芹菜文档,redis broker有一个visibility timeout mechanism
因此,如果在可视性超时内未确认消息,我们应该能够期望该消息再次传递给工作进程。结果就是这样。如果在处理acks_late任务期间断电,则在可见性超时之后,联机工作人员将再次接收该任务。

10-05 20:24
查看更多