首页 > 解决方案 > Celery task_success 信号参数

问题描述

使用 Celery 4.1.0 我正在尝试使用 Celery 信号。使用时@task_success,我试图读取我应该得到的参数,它们都是无。

这是信号:

@task_success.connect()
def task_succeeded(result, sender=None, task_id=None, task=None, **kwargs):
    print("result: " + str(result))
    print("task_id: " + str(task_id))
    print("task: " + str(task))
    print("sender: " + str(sender))
    print("request_id:" + sender.request.id)

信号确实被触发了,我看到了一些打印,但似乎所有参数的值都是无。知道为什么吗?

标签: pythondjangocelery

解决方案


阅读有关信号的文档,task_success只接受两个参数:senderresult

sender是当前Taskresult而是任务执行的当前结果。

因此,在您的示例中,您正在尝试读取一些未定义且resultsender已交换的参数。

PD:我回答这个问题很晚,但我task_success在谷歌搜索时遇到了这个问题。也许将来会帮助某人。


推荐阅读