登录
首页 >  Golang >  Go问答

捕获消息的哨兵不需刷新

来源:stackoverflow

时间:2024-02-22 16:03:28 486浏览 收藏

各位小伙伴们,大家好呀!看看今天我又给各位带来了什么文章?本文标题《捕获消息的哨兵不需刷新》,很明显是关于Golang的文章哈哈哈,其中内容主要会涉及到等等,如果能帮到你,觉得很不错的话,欢迎各位多多点评和分享!

问题内容

Go项目中要立即发送消息,必须使用Flush方法,对吗? 当我尝试在没有 Flush() 的情况下发送消息时,它不起作用。


正确答案


来自docs

刷新等待底层传输发送任何缓冲的事件 到 sentry 服务器,最多阻塞给定的超时时间。它 如果达到超时则返回 false。在这种情况下,一些事件 可能尚未发送。

应在终止程序之前调用flush以避免 无意中丢弃事件。

不要在每次调用captureevent后随意调用flush, captureexception 或 capturemessage。相反,让 sdk 发送 通过网络同步事件,将其配置为使用 对 init 的调用中的 httpsynctransport。

因此,虽然您询问的问题是“有效”问题,以防您需要确保消息确实发送到服务器,但您提出的解决方案(在 capturemessage() 之后调用 flush() ),被 sdk 作者积极劝阻。相反,请考虑以下内容:

sentry.Init(sentry.ClientOptions{
    Transport: sentry.NewHTTPSyncTransport(),
    // ...
})

我会接受 emile pels 的回答并进行更正
sentry.newhttpsynctransport() 应该分配
transport 而不是 httptransport

以上就是《捕获消息的哨兵不需刷新》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>