gpt4 book ai didi

django - celery 任务的中间件

转载 作者:行者123 更新时间:2023-12-04 02:19:17 27 4
gpt4 key购买 nike

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

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

谁能给个建议?

我们正在使用以下版本:

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

关于django - celery 任务的中间件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32141103/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com