芹菜任务的中间件

Mo J.Mughrabi

当前,我们在应用程序中使用了大量芹菜任务,但有一个例外可能会引发大量任务。

我们可以在每个任务中创建一个try and catch块,并相应地处理此特定异常,但我们正在寻找一种方法来捕获任何任务(例如中间件产品)中的任何异常,以简化维护。

有人可以建议吗?

我们正在使用以下版本:

celery==3.1.18
django-celery==3.1.16
Django==1.6.5
马克·拉文

可以使用基本抽象任务处理程序来完成。特别是对于异常,有一个on_failure处理程序。

from celery import Task

class MyBaseTask(Task):
    abstract = True

    def on_failure(self, exc, task_id, args, kwargs, einfo):
        # Task failed. What do you want to do?
        print('Task raised an exception: {}'.format(exc)

@app.task(base=MyBaseTask)
def my_task():
    # Your task code

有关可用的处理程序以及传递给每个处理程序的参数的更多信息,请参见Celery文档。http: //docs.celeryproject.org/en/latest/userguide/tasks.html#abstract-classes

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章