在after_return方法中返回芹菜任务中的值

时间:2013-08-21 16:59:07

标签: python django task return-value celery

我有一系列芹菜任务,并将每个任务实现为继承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。相反,它是无。

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

0 个答案:

没有答案