我想知道如何更改Celery TaskRegistry实现,以便我可以使用自己的实现来切换它。我希望在创建任务时将依赖项注入任务(例如,在运行芹菜工作进程时)。
我试过了:
from celery import Celery
Celery.registry_cls=MyCustomTaskRegistry
在创建我的应用实例之前的顶部。但它似乎没有被接受。
非常感谢任何正确方向的帮助。
答案 0 :(得分:0)
您可以像这样定义自己的注册表
from celery import Celery
a = Celery()
print(a.registry_cls) # gives original registry
from celery.app.registry import TaskRegistry
class MyCustomRegistry(TaskRegistry):
pass
a.registry_cls = MyCustomRegistry
print(a.registry_cls) # gives your custom registry
答案 1 :(得分:0)
自己找到解决方案:
app._tasks=MyCustomTaskRegistry()