有一个关于芹菜和弦队列选择的问题。在
我使用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任务如何选择队列吗?在
谢谢。在
卫斯理
我以前遇到过队列问题,请尝试将代码更改为
相关问题 更多 >
编程相关推荐