我有一个芹菜任务链,并将每个任务实现为一个继承芹菜任务模型的类。
Celery Task 模型有一个def run()
运行任务所需的方法。
还可以拥有一个def after_return
方法,该方法将在任务(run 方法)运行并返回值后自动触发。
方法中的参数之一after_return
是retval
,它应该是run
任务的返回值。但是,我似乎无法让它发挥作用。
示例类(基本):
from celery.task import Task
from utils import log as logging
class Test(Task):
name = "test.create"
soft_time_limit = 60
ignore_result = False
def run(self, *args, **kwargs):
return 'test string'
def after_return(self, status, retval, task_id, args, kwargs, einfo):
logging.info("Return value of test task: %s" % retval)
在这种情况下,retval
应该等于test string
。相反,它是无。
有谁知道我是否遗漏了一些简单的东西?