gpt4 book ai didi

rabbitmq - celery worker 何时向 RabbitMQ 确认它有任务?

转载 作者:行者123 更新时间:2023-12-02 06:26:18 29 4
gpt4 key购买 nike

我可能会误解它是如何工作的(这就是我问的原因),但我认为当 celery 工作人员从 RabbitMQ 消费任务时,它会对其加锁——可以这么说——然后必须承认它一旦完成该任务就完成了。假设我有 4 个工作线程,它们的预取设置都为 1,并且队列中有 6 个任务,这需要很长时间。一旦我启动这些工作人员,我就会运行:

rabbitmqctl -q list_queues name messages messages_ready messages_unacknowledged

我希望看到类似的内容:

celery  6       2       4

表示 4 个任务正在运行(但尚未确认),并且 2 个任务已准备好使用。

我认为我的理解是错误的,因为我实际看到的是:

celery  2       0       2

因此,就好像在工作人员收到消息时、但在该工作人员完成处理该任务之前发生确认。

总而言之,我的问题是, celery worker 什么时候承认它有任务?似乎是在它收到该任务并开始处理它时,而不是在它完成工作时在上面。有人可以确认一下吗?

最佳答案

常见问题解答中提到了这一点,但我不能责怪您没有找到它: http://docs.celeryproject.org/en/latest/faq.html#should-i-use-retry-or-acks-late

早期确认的默认行为是因为我们不想强制用户编写幂等任务。

关于rabbitmq - celery worker 何时向 RabbitMQ 确认它有任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12594802/

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