为了账号安全,请及时绑定邮箱和手机立即绑定

我应该什么时候关闭这个简单的 Web 应用程序中的数据库连接?

我应该什么时候关闭这个简单的 Web 应用程序中的数据库连接?

Go
慕雪6442864 2021-09-21 17:22:35
我正在编写一个使用 PostgreSQL 的简单 Go Web 应用程序。我的main功能看起来像var db *sql.DBfunc main() {    var err error    db, err = sql.Open("postgres", "...")    if err != nil {        log.Fatalf("Couldn't connect to the database: %v", err)    }    http.HandleFunc("/whatever", whateverHandler)    http.ListenAndServe("127.0.0.1:8080", nil)}似乎我应该Close()在某个时候调用数据库连接,但是什么时候?这个应用程序永远有效(即直到我用 杀死它^C)。如果我在ListenAndServe调用后放置代码,它就不会运行,因为我^C已经杀死了整个应用程序。我的应用程序的结构是否应该不同?
查看完整描述

2 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

在这种特殊情况下,我倾向于说您甚至不需要打扰:程序结束时连接将关闭,因此您不会泄漏任何内容。

如果你真的需要正确地关闭东西,更简单的选择是使用优雅的服务器,并defer关闭资源。

或者,如果您的用例更复杂,请通过捕获信号并以您自己的方式优雅地关闭(例如使用关闭通道)来手动完成。


查看完整回答
反对 回复 2021-09-21
  • 2 回答
  • 0 关注
  • 251 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信