登录
首页 >  Golang >  Go问答

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

来源:Golang技术栈

时间:2023-04-29 13:58:31 352浏览 收藏

从现在开始,努力学习吧!本文《我应该什么时候关闭这个简单的 Web 应用程序中的数据库连接?》主要讲解了golang等等相关知识点,我会在golang学习网中持续更新相关的系列文章,欢迎大家关注并积极留言建议。下面就先一起来看一下本篇正文内容吧,希望能帮到你!

问题内容

我正在编写一个使用 PostgreSQL 的简单 Go Web 应用程序。我的main功能看起来像

var db *sql.DB

func 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已经杀死了整个应用程序。我的应用程序应该采用不同的结构吗?

正确答案

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

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

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

文中关于golang的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《我应该什么时候关闭这个简单的 Web 应用程序中的数据库连接?》文章吧,也可关注golang学习网公众号了解相关技术文章。

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