Это пример кода, который я пытаюсь обработать исключение от единорога.
unicron.rb
worker_processes Integer(ENV['WEB_CONCURRENCY'] || 3)
timeout 15
preload_app true
timeout.rb
Rack::Timeout.timeout = 12
Пример кода
def create_store
ActiveRecord::Base.transaction do
@store = Store.new(params[:store])
if @store.save!
sleep 12.3
InformUserWorker.perform_async(store_id)
end
end
rescue => exception
exception.backtrace.each { |trace| puts trace }
rescue Timeout::Error
puts 'That took too long, exiting...1'
rescue Rack::Timeout::RequestTimeoutException
puts 'That took too long, exiting...2'
rescue Rack::Timeout::RequestTimeoutError
puts 'That took too long, exiting...3'
rescue Rack::Timeout::RequestExpiryError
puts 'That took too long, exiting...4'
end
Я получаю code=H13 desc="Connection closed without response"
с этим спящим 12,3 секунды, и происходит откат транзакции, но ни одно из этих исключений не выполнение. Я добавил сюда пару исключений. Что-то здесь не так?.