我们应该将App Engine Context存储在全局var中,而不是为每个请求创建它吗?

时间:2014-02-18 15:33:31

标签: google-app-engine go

我们目前在每个请求上生成App Engine上下文。我们在其他地方读过,这无关紧要,因为App Engine无论如何都基本上缓存了上下文。

func addHandler(res http.ResponseWriter, req *http.Request) {
    c := appengine.NewContext(req)

我们的问题:将App Engine上下文存储在全局变量中是否有意义?

1 个答案:

答案 0 :(得分:3)

我建议反对它,原因如下:

  1. 保持全球状态始终是一种危险:它可能会变得陈旧,腐败,一般来说它会破坏隔离和封装。

  2. 由于AppEngine在扩展或扩展时的工作方式,您并不知道全球真正的全球化程度以及其他可能正在阅读/写入的请求。

  3. 并发。全局变量是并发的祸根。保存自己的理智,不要将全局变量用于Web应用程序。