2017-02-15 10 views
2

Я запускаю сайт на django 1.10, python3.4, mysqlclient, mysql5.5.Частый Mysql ушел (ошибка 2006) в производственной среде

У меня есть несколько команд управления, работающих в фоновом режиме для различных задач (например, отправка почты, обновление таблиц) в разное время. Недавно я начал видеть, что многие Mysql ушли (Ошибка 2006).

Я попытался изменить connection_timeout больше, чем max_connection age. Это решило небольшую долю проблемы, в которой ошибка в 2006 году остановилась на выполнение функции в большинстве случаев, но в других случаях это происходит так же часто, как и в случае ошибки 2006 года.

В некоторых случаях я пробовал использовать django.db .connection.close() перед запуском функции или помещением в цикл try - except. В этих местах эта ошибка больше не возникает, но тогда я не могу поместить этот цикл try-except в каждую функцию.

В чем причина этой повторяющейся ошибки Mysql ушла? Какое это решение и какое наилучшее решение, чтобы мне не пришлось менять большинство моих кодов?

Другие переменные:

Мы модернизировали от Джанго 1.7 до 1.10 и обновленный пакет mysqlclient недавно и проблема всплыла после того, что, вероятно.

Как раз вокруг обновления, движение на нашем сайте также увеличилось несколько раз. Это может быть триггер?

ответ

0

Как видно из других источников, проблема может заключаться в том, что ваш запрос слишком длинный, или сервер закрыл соединение из-за неактивности. Это зависит от обстоятельств, но кажется, что если вы не находитесь в середине транзакции (которая отбросит вторую возможность), вы можете применить что-то похожее на Hook available for automatic retry after deadlock in django and mysql setup

 Смежные вопросы

  • Нет связанных вопросов^_^