Django 芹菜任务中间件

Django 芹菜任务中间件,django,celery,Django,Celery,目前,我们在应用程序中使用了大量芹菜任务,我们有一个异常,它可能会引发大量任务 我们可以在每个任务中创建一个try-and-catch块,并相应地处理这个特定的异常,但是我正在寻找一种方法来捕获任何任务中的异常(比如中间件行),以便于维护 有人能提出建议吗 我们正在使用以下版本: celery==3.1.18 django-celery==3.1.16 Django==1.6.5 这可以使用基本抽象任务处理程序来完成。特别是对于异常情况,有一个关于故障的处理程序 from celery imp

目前,我们在应用程序中使用了大量芹菜任务,我们有一个异常,它可能会引发大量任务

我们可以在每个任务中创建一个try-and-catch块,并相应地处理这个特定的异常,但是我正在寻找一种方法来捕获任何任务中的异常(比如中间件行),以便于维护

有人能提出建议吗

我们正在使用以下版本:

celery==3.1.18
django-celery==3.1.16
Django==1.6.5

这可以使用基本抽象任务处理程序来完成。特别是对于异常情况,有一个关于故障的
处理程序

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

有关可用处理程序和传递给每个处理程序的参数的更多信息,请参阅芹菜文档:

这样,当代理关闭时,我无法捕获OperationError。