0
目前我們在應用程序中使用了大量的芹菜任務,我們有一個例外可能會引發大量任務。用於芹菜任務的中間件
我們可以在每個任務中創建一個try和catch塊,並相應地處理這個特定的異常,但我正在尋找一種方法來捕獲任何異常(如中間件行)以便於維護。
任何人都可以建議嗎?
我們使用以下版本:
celery==3.1.18
django-celery==3.1.16
Django==1.6.5
目前我們在應用程序中使用了大量的芹菜任務,我們有一個例外可能會引發大量任務。用於芹菜任務的中間件
我們可以在每個任務中創建一個try和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
查看可用的處理程序的更多信息芹菜文檔並傳遞給每一個論點:http://docs.celeryproject.org/en/latest/userguide/tasks.html#abstract-classes