2

我有一个芹菜任务链,并将每个任务实现为一个继承芹菜任务模型的类。

Celery Task 模型有一个def run()运行任务所需的方法。

还可以拥有一个def after_return方法,该方法将在任务(run 方法)运行并返回值后自动触发。

方法中的参数之一after_returnretval,它应该是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。相反,它是无。

有谁知道我是否遗漏了一些简单的东西?

4

0 回答 0