Автономный скрипт django получает Потеряно соединение с сервером MySQL во время запроса

У меня есть отдельный скрипт на python (т.е. не часть веб-приложения), который использует ORM. Я вызываю djago.setup(), делаю несколько запросов, затем вызываю функцию, выполнение которой может занять 8 или более часов. Когда функция возвращается, я хочу сделать еще несколько запросов, но они терпят неудачу с Lost connection to MySQL server during query. Тайм-аут ожидания моей БД установлен на 8 часов, и если функция возвращается менее чем через 8 часов, я не получаю ошибку, поэтому я думал, что понял, что происходит.

Но потом я прочитал о CONN_MAX_AGE, который мы не устанавливаем. Если это не он должен быть установлен по умолчанию в 0, что должно означать, что он получает новое соединение для каждого запроса, поэтому мы не должны получать сообщение о потере соединения сообщение. Не работает ли это при использовании djago.setup()?

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

Вернуться на верх