У меня есть тестовое приложение, написанное на ruby с использованием Sinatra + Sequel.
config.ru:
require './main'
run Sinatra::Application
Пример кода:
require 'sinatra'
require 'haml'
require 'sequel'
DB=Sequel.connect('oracle://test:test@test')
class Tarification < Sequel::Model(DB[:test_table])
end
get '/' do
haml :index
end
Все было вседо тех пор, пока я не начал использовать Phusion Passenger в моей тестовой среде.Теперь у меня есть исключение в nginx error.log:
Sequel :: DatabaseError - RuntimeError: Невозможно повторно использовать соединение в разветвленном процессе.
Правильновещь, чтобы разместить подпрограмму подключения БД к файлу конфигурации config.ru или лучше это сделать по-другому?Если первый вариант, чем как сделать вызов соединения правильно из кода приложения?
PS: я знаю, что могу сделать passenger_spawn_method conservative
и продолжить открытие соединения в коде приложения, но я не такищет из-за проблем со скоростью и использованием ресурсов.