我有一系列芹菜任务,并将每个任务实现为继承Celery Task模型的类。
Celery Task模型具有运行任务所需的def run()
方法。
还可以使用def after_return
方法,该方法将在运行任务(运行方法)并自动返回值后自动触发。
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
。相反,它是无。
有人知道我是否遗漏了一些简单的东西?