芹菜内部任务类运行方法获取task_id

时间:2014-04-22 18:25:06

标签: celery celery-task

我正在尝试运行以下代码:

class myTask(Task):
    def run():
        print myTask.request.id

但是这段代码给出了None作为request_id。 请解释一下为什么我无法在芹菜副课程中读取id

1 个答案:

答案 0 :(得分:1)

您正在尝试访问类而非对象实例上的请求对象。试试这个:

class myTask(Task):
    def run(self, *args, **kwargs):
        print self.request.id

你也可以使用@task装饰者:

app = Celery('tasks', broker='amqp://guest@localhost//')

@app.task(bind=True)
def myTask(self):
    print self.request.id