芹菜和弦任务如何选择队列?

2024-10-03 11:15:53 发布

您现在位置:Python中文网/ 问答频道 /正文

有一个关于芹菜和弦队列选择的问题。在

我使用celery 4.1、Python2.7.10和rabbitmq 3.5.4作为代理。在

一开始我的目的是得到队列中有多少chord任务等待处理。在

因此,我将链式任务和chord回调任务分成不同的队列,从回调队列深度可以得到挂起的任务数。在

以下是代码片段:

@shared_task(name="analyze_atom", queue="atom")
def analyze_atom(image_urls, targetdir=target_path, studentuid=None):
    return {}


@shared_task(name="summary_up", queue="summary")
def summary_up(rets, studentuid, images):
    return {}


chord(analyze_atom.s([image]) for image in images)(summary_up.s(studentuid, images))

因此,analyze_atom被调度到队列“atom”中,而任务摘要(task summary)调度到队列“summary”。在

现在问题来了,当我用图像中的两个元素调用chord时,预期的结果是“atom”中的两个analyze_atom任务和“summary”中的一个summary\u-up任务,是吗?在

我使用rabbitmq管理来检查队列,但是在atom中只找到两个任务,而在摘要队列中什么也没有,而且即使整个chord任务都成功完成,“summary”队列也始终为0。在

我不知道总结任务安排在哪里?在

有人知道chord任务如何选择队列吗?在

谢谢。在

卫斯理


Tags: nameimagetask队列queuedefrabbitmqsummary