首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >执行组后不执行任务的芹菜链

执行组后不执行任务的芹菜链
EN

Stack Overflow用户
提问于 2017-06-02 11:36:53
回答 1查看 883关注 0票数 0

我在项目中使用的是RabbitMQ版本"3.5.7“和芹菜4.0.2。

这是在这个文件中创建芹菜链的代码

代码语言:javascript
复制
@app.route('/transcodeALL', methods=['POST'])
def transcodeToALL():
    if request.method == 'POST':
        # We will do something like this to simulate actual processing of a video
        transcoding_tasks = group(
            transcode_1080p.signature(queue='tasks', priority=1, immutable=True),
            transcode_720p.signature(queue='tasks', priority=2, immutable=True),
            transcode_480p.signature(queue='tasks', priority=3, immutable=True),
            transcode_360p.signature(queue='tasks', priority=4, immutable=True)
        )
        main_task = chain(
            common_setup.signature(queue='tasks', immutable=True)
            transcoding_tasks,
            end_processing.signature(queue='tasks', immutable=True),
        )
        main_task.apply_async()
        return 'Video is getting transcoded to all dimensions!'
    else:
        return 'ERROR: Wrong HTTP Method'

在这里,common_setup被调用,然后组transcoding_tasks也被调用。但是,根本没有调用end_processing

不知何故,在执行组之后,不会调用其他任务。我已经切换了链这里中的语句并进行了检查,同样的问题也会发生!

我是不是做错了什么小事,还是这是个小错误?

谢谢!

更新:找到解决方案!

EN

回答 1

Stack Overflow用户

发布于 2017-06-02 16:28:01

这是一个很有趣的错误!花了一段时间才发现结果后端应该是一些持久的后端,比如SQL或Redis。

因此,我在芹菜配置中进行了修改:

代码语言:javascript
复制
-    celeryconfig['CELERY_RESULT_BACKEND'] = 'amqp://'
+    celeryconfig['CELERY_RESULT_BACKEND'] = 'redis://localhost'

还有,芹菜链(和弦)工作得很完美。希望能帮上忙!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44327977

复制
相关文章

相似问题

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