celery 不能决定它是否有结果

noj0wjuj  于 2021-06-10  发布在  Redis
关注(0)|答案(0)|浏览(290)

当西芹盯着看的时候,它说它有这样一个后端:

-**---------- .> app:         app.celery:0x7f5fe5f80b80
-**---------- .> transport:   redis://redis:6379/10
-**---------- .> results:     redis://redis:6379/11
-***--- * --- .> concurrency: 4 (prefork)

但是当我尝试运行一个复杂的任务时,我得到了一个错误:

NotImplementedError: Starting chords requires a result backend to be configured

celery 的配置如下:

Celery(__name__, broker="redis://redis:6379/10", backend="redis://redis:6379/11", tasks_acks_late=True)

任务是用 @app.task(base=MyBaseTask, bind=True) ,并且顶层任务的构造方式将使其中包含和弦。顶层任务的执行方式为 my_task.delay() ,这是引发异常的行。
我明白为什么我需要结果备份来运行我的任务,但我不明白为什么它认为一个没有配置。
你知道我会错过什么吗?
编辑:可能需要注意的是,我在两个k8s pod上部署了相同的代码库,一个作为api服务器,另一个作为celery 工人。我打电话来 .delay() 在api服务器上,并期望辅助进程拿起任务并运行它。这是召唤 .delay() 在引发异常的api pod上。两个豆荚中的每一个都示例化了自己的celery 应用程序,所以我想知道这是否是导致我的问题的原因?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题