我在Rails-4应用程序中使用Pusher。
问题是有时连接速度很慢,因此代码执行速度变慢 我还不时得到以下错误:
Pusher::HTTPError: execution expired (HTTPClient::ConnectTimeoutError)
我使用此代码通过Pusher发送信号:
Pusher[channel].trigger!(event, msg)
我想在后台执行它,所以如果抛出异常,它不会破坏我的应用程序的流量,也不会减慢它的速度。
我尝试用begin ... rescue
打包调用,但它没有解决异常问题。当然即使它会,它也不会解决我想避免的减速问题。
答案 0 :(得分:0)
有关执行异步触发器的信息,请访问: https://github.com/pusher/pusher-gem#asynchronous-requests
这也为您提供有关捕获/处理错误的信息。
答案 1 :(得分: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