【问题标题】:python raven timing out when using django logging from a celery workerpython raven在使用芹菜工人的django日志记录时超时
【发布时间】:2016-01-16 15:45:27
【问题描述】:

我正在使用 raven 从我的 celery 工作记录到哨兵。我发现每当我使用 django 日志系统记录到哨兵时,每次更新都可能需要几分钟(但日志成功)。如果我从我的日志记录配置中删除哨兵,它是即时的。

我尝试通过以下方式直接恢复使用 raven:

import raven
client=raven.Client("DSN")
client.captureMessage("message")

这在工作人员内部没有延迟。

但如果我尝试使用 django 特定客户端,如下所示,则存在延迟:

from raven.contrib.django.raven_compat.models import client
client.captureMessage("message")

通常是 2 分钟多一点,所以看起来像超时但操作成功。

延迟加起来,让我的工作队列变得不可靠。

【问题讨论】:

    标签: python django celery sentry raven


    【解决方案1】:

    如果您使用默认的 Celery worker 模型,则通常应该可以正常工作。如果您使用的其他东西可能不太真实。

    默认情况下,Python 客户端使用线程工作者。这意味着,在实例化时,它会创建一个队列和一个线程来异步处理消息。如果这种情况以各种方式发生,则可能会导致问题(即 pre-fork),或者如果您使用的是 gevent 之类的东西而不是修补线程。

    您可以尝试将传输更改为同步以确认这是相关的:

    https://docs.getsentry.com/hosted/clients/python/transports/

    【讨论】:

      猜你喜欢
      • 2021-08-13
      • 2012-05-01
      • 2022-10-25
      • 1970-01-01
      • 2018-01-02
      • 2015-03-29
      • 2016-08-27
      • 1970-01-01
      • 2011-09-16
      相关资源
      最近更新 更多