Вопрос

У меня есть Mysql ушел с Джанго под WSGI. Я нашел записи для этой проблемы на Stackoverflow, но ничего с Django специально. Google не помогает, за исключением обходных путей (например, опросает веб-сайт время от времени или увеличить время ожидания базы данных). Ничего определенного. Технически, django и / или mysqldb (я использую последние 1.2.3c1), должен попытаться восстановить, если сервер повесил соединение, но это не происходит. Как я могу решить эту проблему без обходных путей?

Это было полезно?

Решение

show variables like 'wait_timeout';

Это настройка отбросит ошибку «MySQL ушел»
Установите его на очень большое значение, чтобы предотвратить его «уйти»
или просто повторное соединение MySQL после определенного периода

Другие советы

Разработчики Django дали один короткий ответ на все вопросы, как это в https://code.djangoproject.com/ticket/21597#Comment: 29.

  • Резолюция установлена вонфейс

На самом деле это предполагаемое поведение после # 15119. Смотрите этот билет на обоснование.

Если вы ударили эту проблему и не хотите понимать, что происходит, не открывайте этот билет, просто сделайте это:

  • Рекомендуемое решение: Закройте соединение с from django.db import connection; connection.close() Когда вы знаете, что ваша программа будет промин собой в течение длительного времени.

  • Дрянное решение: Увеличьте WIET_TIMEOUT, так что дольше, чем максимальное время ожидания вашей программы.

В этом контексте время простоя - это время между двумя последовательными запросами базы данных.

  • Вы можете создать промежуточное программное обеспечение для Ping () подключения MySQL (который будет воссоединиться, если он истечет) перед обработкой представления

  • Вы также можете добавить промежуточное программное обеспечение, чтобы уловить исключение, повторно подключиться и повторить представление (я думаю, что я бы предпочел вышеупомянутое решение как проще, но он должен технически работать и быть исполненным, предполагая, что время ожидания не имеет сторонности. Эффекты, которые являются желаемым имуществом, но могут быть трудно сделать, особенно если вы пишете на файловую систему, а также в БД по вашему мнению.)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top