首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >芹菜chord任务如何选择队列?

芹菜chord任务如何选择队列?
EN

Stack Overflow用户
提问于 2017-09-03 21:40:54
回答 1查看 966关注 0票数 1

我有一个关于芹菜chord队列选择的问题。

我使用celery 4.1、python 2.7.10和rabbitmq 3.5.4作为代理。

我一开始的目的是获取队列中有多少chord任务处于挂起状态。

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

下面是代码片段:

代码语言:javascript
复制
@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“,而任务summary_up被调度到队列"summary”。

现在问题来了,当我在图像中使用两个元素调用chord时,预期的结果是"atom“中的两个analyze_atom任务和”summary_up“中的一个摘要任务,嗯?

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

我不知道summary_up任务被安排在哪里?

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

谢谢。

韦斯利

EN

回答 1

Stack Overflow用户

发布于 2018-03-26 19:43:48

我以前遇到过队列问题,请尝试将您的代码更改为

代码语言:javascript
复制
chord(analyze_atom.s([image]).set(queue="atom") for image in images)(summary_up.s(studentuid, images).set(queue="summary"))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46023997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档