Я довольно устаю от попыток исправить эту проблему, поскольку она, похоже, возвращается после каждого исправления, которое я пробовал.
У меня есть приложение PyQt, использующее SQLAlchemy для подключения к удаленной базе данных MySQL с помощью пула соединений. После того, как программное обеспечение не используется в течение произвольного промежутка времени, следующий запрос вызовет сбой программы, поскольку соединение с базой данных устарело. Как указано в документации по SQLAlchemy, я попытался использовать параметры pool_recycle
и pool_pre_ping
при создании движка, чтобы соединения перестали устаревать. Ни одна из них не сработала, и у меня все та же проблема. Я подтвердил, что выбранное мной время перезарядки значительно превышало время разрыва соединения MySQL, и оно все еще не работало.
Я не понимаю, почему в show processlist;
на сервере MySQL я все еще вижу полдюжины подключений от одного экземпляра работающего программного обеспечения. Даже когда pool_recycle
использовался, эти соединения оставались в состоянии сна в течение нескольких часов. Кажется, что ни один из параметров, предложенных в документации, на самом деле ничего не делает.