在 Go 项目中要立即发送消息,必须使用 Flush 方法,我说得对吗?当我尝试在没有它的情况下发送消息时,它就是不起作用。Flush()
2 回答
一只斗牛犬
TA贡献1784条经验 获得超2个赞
从文档中:
刷新将一直等到基础传输将任何缓冲事件发送到 Sentry 服务器,最多阻止给定的超时。如果达到超时,它将返回 false。在这种情况下,某些事件可能尚未发送。
应在终止程序之前调用 Flush,以避免无意中丢弃事件。
不要在每次调用 CaptureEvent、CaptureException 或 CaptureMessage 后不加选择地调用 Flush。相反,若要让 SDK 通过网络同步发送事件,请将其配置为在对 Init 的调用中使用 HTTPSyncTransport。
因此,虽然您询问的问题是“有效的”问题,以防您需要确保确实将消息发送到服务器,但SDK作者会积极阻止您提出的解决方案(在a之后调用)。相反,请考虑以下情况:Flush()
CaptureMessage()
sentry.Init(sentry.ClientOptions{
Transport: sentry.NewHTTPSyncTransport(),
// ...
})
波斯汪
TA贡献1811条经验 获得超4个赞
sentry.Init(sentry.ClientOptions{
Transport: sentry.NewHTTPSyncTransport(),
// ...
})
- 2 回答
- 0 关注
- 100 浏览
添加回答
举报
0/150
提交
取消