Има друга потенциална причина за тази грешка и това е пула за връзки ActiveRecord жътвар . Когато е активиран, жътварката сканира пула от връзки за "мъртви" връзки и ги затваря. При моето тестване изглежда, че е прекалено усърден и затваря напълно живи връзки (обикновено такива, изпълняващи малко по-големи заявки).
Опитайте да изчистите reaping_frequency
от вашата DB конфигурация (която я изключва) и вижте дали това помага. Сканирайте вашата кодова база за този низ и се уверете, че не е зададен (или просто е премахнат!). Ако видите ред като config['reaping_frequency'] = ENV['DB_REAP_FREQ'] || 10
, знайте, че || 10
всъщност задава ниска стойност по подразбиране от 10s. Този модел беше в кодовата база на rails за известно време, докато промяната не беше отменена поради това, което причинява различни проблеми, включително убиване на продължителни заявки
, но все още препоръчан от Heroku
.
Ако деактивирането на reaper оправя нещата, бих препоръчал да го оставите деактивиран. Rails вече не го задава по подразбиране и изглежда създава повече проблеми, отколкото решава.
Имах грешка като твоята и така я поправих. Лично аз го държа деактивиран. Написах за конкретния си проблем по-подробно в моя блог .