当使用来自芹菜工人的django记录时,python raven超时

时间:2015-10-18 06:34:35

标签: python django celery sentry raven

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

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

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

这在工人内部没有任何延迟。

但是如果我尝试使用django特定客户端而不是延迟存在:

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

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

延迟加起来,使我的工作排队不可靠。

1 个答案:

答案 0 :(得分:1)

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

默认情况下,Python客户端使用线程化工作程序。意思是,在实例化时,它创建一个队列和一个线程来异步处理消息。如果这种情况以各种方式发生,可能会导致问题(即预分叉),或者如果您正在使用gevent而不是修补线程等。

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

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