sql: database is closed

go服务报错:

http://xxx Request Error socket hang up, POST http://xxx -1 (connected: true, keepalive socket: false, agent status: {"createSocketCount":78,"createSocketErrorCount":0,"closeSocketCount":77,"errorSocketCount":0,"timeoutSocketCount":71,"requestCount":251,"freeSockets":{},"sockets":{"xxx:":1},"requests":{}}, socketHandledRequests: 1, socketHandledResponses: 0)

关键日志:err:sql: database is closed

解决办法:

后来发现是db实例提前关闭的问题。检查下是不是在使用连接的时候连接关闭掉了,举例:有两个步骤依次为A、B, 原因很简单, A任务里写了defer  db.close()  则B里再使用的时候就会报这个错

可以干掉defer  db.close() ,既然是全局使用的连接,直接取用就好。或者可以采取其它措施来调整逻辑。

上一篇:Python 树/搜索类算法


下一篇:Python高阶 ---上下文管理器