Отменить подключение к БД Rails

Я пишу приложение, которое использует события на стороне сервера с ActionController::Live. Он использует сервер приложений Puma. Метод в контроллере Messages остается активным, пока пользователь подключен к сети, ожидая сообщений от Redis.

Проблема в том, что я не хочу подключаться к Postgres по этому методу. После того, как я открываю приложение на шести вкладках, оно имеет более пяти подключений, определяемых размером пула в файле config/database.yml, и приложение аварийно завершает работу.

Можно ли каким-либо образом сообщить моему приложению, что при вызове этого метода ему не нужно подключаться к базе данных, поскольку в нем нет вызовов запросов ActiveRecord?


person roryhughes    schedule 17.06.2013    source источник
comment
Должен ли я просто поместить его в верхнюю часть действия моего контроллера, потому что это не сработало.   -  person roryhughes    schedule 18.06.2013
comment
Можете ли вы опубликовать приложение rails в качестве образца, который воспроизводит эту проблему сбоя приложения?   -  person CuriousMind    schedule 27.07.2013
comment
Вам нужно будет увеличить количество подключений к БД, чтобы оно равнялось количеству потоков Puma. В противном случае у вас преждевременно закончатся соединения, как вы видите.   -  person Paul Richter    schedule 26.09.2013
comment
Да, но я действительно хотел, чтобы при создании потоков puma новое соединение с базой данных не создавалось, поскольку оно не требуется.   -  person roryhughes    schedule 28.09.2013


Ответы (1)


Один из возможных способов сделать это — использовать промежуточное ПО. Хорошим ресурсом для настройки собственного промежуточного программного обеспечения является http://railscasts.com/episodes/151-rack-middleware?view=asciicast

Однако я не уверен, что проблема, с которой вы столкнулись, связана со слишком большим количеством подключений к Postgres. Это всего лишь догадка, но я думаю, что ваша проблема может заключаться в другом.

person adriandz    schedule 04.08.2013