Как я могу создать постоянное соединение с базой данных для прослушивания события? Я использую стороннюю библиотеку fbchat
для чтения сообщений в Facebook и отправки запросов в базу данных на основе их сообщений. Я создаю событие прослушивания для чтения сообщения, используя функцию Client.listen()
, как описано здесь: https://fbchat.readthedocs.io/en/master/intro.html#listening-events. Программа работает хорошо и все, но когда мне нужно, чтобы событие прослушивания всегда работало в производстве. Для этого я попытался с помощью Heroku free scheduler
проверить, работает ли функция каждые 10 минут, и, если нет, запустить ее. Проблема в том, что, если я бездействую хотя бы какое-то время, попробуйте разобрать сообщение, полученное событием прослушивания, и запросить базу данных, я получаю эту ошибку:
(2006, потерянное соединение с MySQL)
Я посмотрел на это, и обнаружил, что ClearDB
имеет автоматическое отключение соединения через 90 секунд. Я прочитал, что я мог бы добавить CON_MAX_AGE
со значением, которое меньше wait_timeout
, которое по умолчанию равно 28800, но ClearDB по умолчанию составляет 90 секунд. Я установил значение 60, но некоторое время все еще получаю сообщение об ошибке после простоя. Я понятия не имею, как решить эту проблему в данный момент. Как мне создать постоянное соединение, чтобы мой бот всегда видел каждое сообщение на Facebook и запрашивал эту базу данных, не разрывая соединение?