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



我正在使用兔子版本" 3.5.7"和我的项目中的芹菜4.0.2。

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

@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根本没有被调用。

以某种方式,在执行组后,没有调用其他任务。我已经切换了此处的链条中的语句并检查了同样的问题!

我是在做一些琐碎的事情还是一个错误?

谢谢!

更新:找到解决方案!

这是一个非常有趣的错误!有时花了一些时间来确定结果后端应该是一些持久的后端,例如SQL或Redis。

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

-    celeryconfig['CELERY_RESULT_BACKEND'] = 'amqp://'
+    celeryconfig['CELERY_RESULT_BACKEND'] = 'redis://localhost'

,芹菜链(和和弦(正常工作。希望它有帮助!

相关内容

  • 没有找到相关文章

最新更新