0

我正在使用 raven 从我的芹菜工作记录到哨兵。我发现每当我使用 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 分钟多一点,所以看起来像超时但操作成功。

延误加起来,使我的工作队列不可靠。

4

1 回答 1

1

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

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

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

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

于 2015-10-28T16:57:02.503 回答