Есть сайтик на рор. Есть база postgresql которую этот сайтик использует. Для доступа к базе использую гем pg
ruby 2.1.1
pg-0.17.1
rails-4.0.4
postgresql-9.3.3
На сайте есть пара кусков кода которые могут выполняться очень долго в зависимости от внешних факторов и не всегда успешно. Я хочу ограничить время выполнение этих кусков кода. Для этого я запускаю их в Thread.new и жду окончание выполнения с помошью thread.join(5) В этих кусках кода есть пара запросов к базе(обычные запросы через модели по типу News.all), через некоторое время, на глаз где то после 30-50 обновлений страницы сайта у меня все отваливается, тестовый сервер рельсов начинает сыпать ошибками
ActiveRecord::ConnectionTimeoutError (could not obtain a database connection within 5.000 seconds (waited 5.000 seconds)):
$ psql -U postgres
psql: FATAL: sorry, too many clients already
Без использования тредов все соответственно работает как надо.
Нужно или както разобраться с количеством соединений при запросах к базе из тредов или придумать как можно по другому ограничить время выполнения определенного куска кода.
Какие у кого есть мысли?