提问参考模版:
nebula 版本:3.4.0
部署方式: 单机
安装方式:Docker
是否上生产环境: N
问题的具体描述:
我使用的是nebula-python,发现 session_pool 中的连接太久没用,服务器断开连接后再进行请求会报 nebula3.Exception.IOErrorException: TSocket read 0 bytes 错误,之后再请求又能正常连接。
之前提到过这个问题,回答告知[服务器默认关闭超过8小时闲置的连接
我后面将SessionPoolConfig的 idle_time=7200, interval_check=1800, 但是改好后 还是会遇到这个问题,请问有什么解决方案吗?
手册上说client_idle_timeout_secs 能设置为0,实际跑起来则报错,数值必须在 1~604800 之间呀。这样 的话 就算设置到最大值,最后还是会超时服务器断开呀,问题还是在的呀,有解决方案嘛?
我这边是做了个线程定时拿到快过期的session 做一次show hosts query, 保证它不过期。
1 个赞
大佬你要不分享下golang代码呗,golang我也会, 我借鉴下你的方案, 谢谢啦
sorry 事情有点多,我做的比较简单的处理
// Ping keep each session alive
func (cli *NebulaCli) Ping() {
stmt := "show hosts"
fmt.Println("Ping...")
for i := 0; i < cli.max; i++ {
cli.Query(stmt)
}
}
func main() {
defer nCli.Close()
go func() {
for {
nCli.Ping()
time.Sleep(9 * time.Minute) // 比过期时间短一些
}
}()
}
2 个赞
system
关闭
11
此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。