2014-11-05 1 views
0

Я использую Pusher в своем приложении Rails-4.Rails - запуск толкателя в фоновом режиме

Проблема в том, что иногда соединение происходит медленно, поэтому выполнение кода становится медленнее.
я также получаю время от времени следующего сообщения об ошибке:

Pusher::HTTPError: execution expired (HTTPClient::ConnectTimeoutError) 

Я посылать сигналы через толкатель с этим кодом:

Pusher[channel].trigger!(event, msg) 

Я хотел бы, чтобы выполнить его в фоновом режиме, так что, если исключение составляет брошенный он не сломает поток моего приложения и не замедлит его.
Я попытался обернуть звонок begin ... rescue, но это не решило проблему исключения. Конечно, даже если бы это было так, это не решило бы проблему замедления, которую я хочу избежать.

ответ

0

Наконец я реализовал это решение:

Thread.new do 
    begin 
    Pusher[channel].trigger!(ch, ev, msg) 
    ActiveRecord::Base.connection.close 
    rescue Pusher::Error => e 
    Rails.logger.error "Pusher error: #{e.message}" 
    end 
end