2016-09-08 3 views
0

Иногда случается, что экземпляр механизма GAE App не отвечает успешно, поскольку запросы, по-видимому, не вызывают исключения в приложении Django.GAE, выводящие соединения mysql open

Затем я проверяю список процессов в экземпляре MySQL и вижу, что есть много ненужных процессов, открытых локальным хостом, и, вероятно, серверное приложение пытается открыть новое соединение и достигает предела процесса.

Почему сервер создает новые процессы, но в конце концов не удается закрыть соединения? Как закрыть эти соединения программно?

Если я перезапущу экземпляр приложения 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 

ответ

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