我们目前在每个请求上生成App Engine上下文。我们在其他地方读过,这无关紧要,因为App Engine无论如何都基本上缓存了上下文。
func addHandler(res http.ResponseWriter, req *http.Request) {
c := appengine.NewContext(req)
我们的问题:将App Engine上下文存储在全局变量中是否有意义?
答案 0 :(得分:3)
我建议反对它,原因如下:
保持全球状态始终是一种危险:它可能会变得陈旧,腐败,一般来说它会破坏隔离和封装。
由于AppEngine在扩展或扩展时的工作方式,您并不知道全球真正的全球化程度以及其他可能正在阅读/写入的请求。
并发。全局变量是并发的祸根。保存自己的理智,不要将全局变量用于Web应用程序。