在 golang(RabbitMQ、数据库等)中处理与外部服务的共享连接资源的处理范围的最佳实践是什么?例如,给定这段代码使用 database/sql、pq 和 http:
func main() {
db, err := sql.Open("postgres", "user=root dbname=root")
if err != nil {
log.Fatal(err)
}
http.HandleFunc("/", front_handler)
http.HandleFunc("/get", get_handler)
http.HandleFunc("/set", set_handler)
http.ListenAndServe(":8080", nil)
}
使db对象可供我注册的处理程序使用的最佳方法是什么?
我是否将db声明放在主要范围之外(这会导致我在 Python 中出现单元测试问题,但在这里可能没问题)?
我是否将处理程序声明放在主范围内(似乎不允许我嵌套函数)?
是否有我可以用来访问主范围的寻址方案(我会在 puppet 中做类似的事情)?
还有其他选择吗?
陪伴而非守候
慕桂英4014372
相关分类