如何在 celery 的 on_success() 和 on_failure() 回调中传递参数?

asc*_*ker 6 python callback celery django-celery

from  my_celery import app
from delete_duplicate import DeleteDuplicate

import celery


class CallbackTask(celery.Task):
    def on_success(self, retval, task_id, args, kwargs):
        print "Task id: ", task_id
        print "retval ", retval     
        print "Args ", args
        print "kwargs: ", kwargs

    def on_failure(self, exc, task_id, args, kwargs, einfo):
        print('{0!r} failed: {1!r}'.format(task_id, exc))   



class Ott(object):
    @app.task(base=CallbackTask())  
    def delete_duplicate_ott():
        print "Inside ott.... "
        DeleteDuplicate().delete_duplicate_ott()
    @app.task(base=CallbackTask())
    def delete_duplicate_noti():
        print "Inside noti.... "
        DeleteDuplicate().delete_duplicate_noti()
Run Code Online (Sandbox Code Playgroud)

我使用celery中的Callback来实现上面的回调。

上面的代码运行完美。我想在 args 或 kwargs 中的 on_success() 和 on_failure() 回调中传递参数。成功执行任务后,Args 和 Kwargs 都会打印 None。

我在互联网上搜索,没有找到任何使用继承(子类)遵循此类回调的解决方案。

非常感谢任何帮助。谢谢!