我正在使用Celery服务器使用RabbitMQ。我有一个发布者,该发布者可能会被SIGKILL终止,并且由于无法观看此信号,因此无法撤消任务。在发布者不再活跃的情况下,撤销任务的常见方法是什么?

我在工作人员端进行了间隔实验,但是发布者显然未注册为工作人员,因此我不知道如何检测超时

最佳答案

celery 没有内置任何东西可以监视生产者/发布者的状态,只有 worker /消费者的状态。您还可以考虑其他替代方法,例如,使用redis过期 key ,该 key 必须由发布者定期更新,该发布者可以充当发布者是否还活着的代理。然后在任务中检查是否在redis中仍然存在发布者的标志,如果不是,则该任务返回不执行任何操作。

10-01 00:39