GAE让mysql连接打开

时间:2016-09-08 10:22:53

标签: google-app-engine google-cloud-sql

有些时候,GAE App引擎实例无法成功响应,因为显然不会导致Django应用程序出现异常的请求。

然后我检查MySQL实例中的进程列表,看到localhost打开了许多不必要的进程,可能服务器应用程序正在尝试打开新连接并达到进程限制。

为什么服务器会创建新进程但却无法在最后关闭连接?如何以编程方式关闭这些连接?

如果我重新启动App引擎实例,则500错误(和mysql线程)消失。

| 7422 | root          | localhost    | prova2 | Sleep   |  1278 |             | NULL
| 7436 | root          | localhost    | prova2 | Sleep   |   703 |             | NULL
| 7440 | root          | localhost    | prova2 | Sleep   |   699 |             | NUL
| 7442 | root          | localhost    | prova2 | Sleep   |   697 |             | NULL
| 7446 | root          | localhost    | prova2 | Sleep   |   694 |             | NULL
| 7448 | root          | localhost    | prova2 | Sleep   |   694 |             | NULL
| 7450 | root          | localhost    | prova2 | Sleep   |   693 |             | NULL

1 个答案:

答案 0 :(得分:0)

实际上,有问题的代码是中间件,它存储查询并生成一些请求的摘要数据。当我在appengine_config.py中删除此部分时,睡眠连接的问题就消失了:

def webapp_add_wsgi_middleware(app):
    from google.appengine.ext.appstats import recording
    app = recording.appstats_wsgi_middleware(app)
    return app