gpt4 book ai didi

django - Celery 任务未捕获的异常未发送到 Sentry

转载 作者:行者123 更新时间:2023-12-04 01:56:34 25 4
gpt4 key购买 nike

我目前正在基于 Django 的项目中处理 Celery 任务。我们已将 raven 配置为向 Sentry 发送所有未捕获的异常和日志消息,如 documentation 中所述。 .

一切都很好,除了 celery 任务中未捕获的异常。例如,如果我运行此任务:

@app.task
def test_logging():
log.error('Testing logging inside a task')
raise IndexError('Testing exception inside a task')

我只在 Sentry 中看到 log.error(...)但不是 IndexError未捕获的异常。
我试过使用 try-exceptlog.exception(...) 阻止异常在内部并且它确实有效,但我认为它无法捕获这样的所有异常。

因此,问题只是未捕获的异常,但以某种方式未正确处理。

这些是我当前的软件包版本:
celery (3.1.17)
raven (5.1.1)
Django (1.7.1)

你能帮我朝某个方向前进吗?

感谢您的时间!

最佳答案

正如 DRC 在上面的评论中所描述的,我们最终使用这种方法找到了解决方案:
https://docs.getsentry.com/hosted/clients/python/integrations/celery/

基本上这样做:

import celery

class Celery(celery.Celery):

def on_configure(self):
if hasattr(settings, 'RAVEN_CONFIG') and settings.RAVEN_CONFIG['dsn']:
import raven
from raven.contrib.celery import (register_signal,
register_logger_signal)

client = raven.Client(settings.RAVEN_CONFIG['dsn'])
register_logger_signal(client)
register_signal(client)


app = Celery('myapp')
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)

谢谢你的时间。

关于django - Celery 任务未捕获的异常未发送到 Sentry,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27550916/

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