Мы обновляем приложение Sinatra из ActiveRecord 4 до ActiveRecord 5. Ранее мы имели следующую строку:
use ActiveRecord::ConnectionAdapters::ConnectionManagement
Это связано с тем, что соединения не очищались после завершения запросов. Вот предварительная дискуссия по этой теме:
- Предупреждение о подключении ActiveRecord. (Соединения базы данных не будут автоматически закрыты)
- ActiveRecord:: ConnectionTimeoutError
Начиная с ActiveRecord 5, эта строка больше не работает. Этот разговор в состояниях рельсов:
Это было удалено в пользу API-интерфейса Executor и Reloader. Что промежуточное программное обеспечение, которое было удалено, не было частью публичного API. если ты хотите использовать ту внешнюю Rails, что вам нужно сделать.
Означает ли это, что если кто-то будет использовать ActiveRecord 5 с Sinatra, соединения будут снова "пропущены" или оставлены без возврата в пул после запроса, если разработчик не заново создаст удаленное промежуточное программное обеспечение?
В примере с Sinatra, так ли теперь, что нам нужно включить эту строку в ActiveRecord 5?
after do
ActiveRecord::Base.clear_active_connections!
end
Это подразумевается в связанном потоке, но я хочу получить определенный ответ, который я могу вернуть к своей команде разработчиков.