2014-11-05 22 views
0

我在我的Rails-4應用程序中使用Pusher。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