路轨 - 在背景中运行推动器

时间:2014-11-05 11:15:21

标签: ruby-on-rails-4 pusher

我在Rails-4应用程序中使用Pusher。

问题是有时连接速度很慢,因此代码执行速度变慢 我还不时得到以下错误:

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

我使用此代码通过Pusher发送信号:

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

我想在后台执行它,所以如果抛出异常,它不会破坏我的应用程序的流量,也不会减慢它的速度。
我尝试用begin ... rescue打包调用,但它没有解决异常问题。当然即使它会,它也不会解决我想避免的减速问题。

2 个答案:

答案 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