【发布时间】:2021-07-29 15:17:29
【问题描述】:
我有一个脚本在名为 vv 的特定队列中调用 Celery 的 send_task 函数 3047 次。使用rabbitmqadmin list queues 命令,我注意到队列中只有2870 条消息,没有任何worker 连接到vv 队列。
你自己有没有经历过这种行为?这只是来自rabbitmqadmin 的显示错误吗?
提前感谢您的帮助,如果您需要有关脚本的更多详细信息,我将完成我的问题!
编辑:脚本长这样,有大量文档,由celery-beat触发
from celery import Celery
app = Celery()
app.config_from_object('celeryconfig')
@app.task
def document_monitoring(index, query, kind):
# generate random messages
documents = [{'_id': str(i)} for i in range(10000)]
for document in documents:
app.send_task(
"vv_consumer",
kwargs=document,
queue='vv'
)
return 0
【问题讨论】:
-
请用一个可重复的最小示例完成您的问题。
-
我已经用可重现的例子完成了这个问题,消息的数量是那个数量级的。此过程由每分钟
celery-beat触发 -
我认为这没有什么问题。为什么你会认为这是一个错误?
-
当我监控
vv队列中的消息数量时,我收到的消息少于send_task的调用数量。一些消息消失了,没有发送到队列中。