Python 在中注册基于类的任务
我用的是芹菜4.0.2版 与以前版本的芹菜相比,基于类的任务似乎不会自动注册(即,如果配置了自动发现) 但是,我甚至无法手动注册基于类的任务 根据芹菜变化日志: 自版本4.0.1起,应可以手动注册任务:Python 在中注册基于类的任务,python,celery,celery-task,Python,Celery,Celery Task,我用的是芹菜4.0.2版 与以前版本的芹菜相比,基于类的任务似乎不会自动注册(即,如果配置了自动发现) 但是,我甚至无法手动注册基于类的任务 根据芹菜变化日志: 自版本4.0.1起,应可以手动注册任务: from celery import Celery, Task app = Celery() class CustomTask(Task): def run(self): return 'hello' app.register_task(CustomTask())
from celery import Celery, Task
app = Celery()
class CustomTask(Task):
def run(self):
return 'hello'
app.register_task(CustomTask())
但这似乎不起作用。有人知道如何做到这一点吗
我尝试了一些正在讨论的建议(除了集成中提到的自定义任务加载器):
快到了!您需要对注册的任务调用
delay()
这将有助于:
from celery import Celery, Task
app = Celery()
class CustomTask(Task):
def run(self):
return 'hello'
task = CustomTask()
app.register_task(task)
task.delay()
如果您需要
共享任务装饰器:
from celery import Task, shared_task
class CustomTask(Task):
def process(self):
return 'hello'
@shared_task(bind=True, base=CustomTask)
def custom(self):
self.process()
process
是启动任务的自定义名称(decorator重写run
方法)
bind=True
将函数绑定到类实例
base=CustomTask
为任务设置基类,但在其他文件上导入task
时,基类不起作用。