5

我正在尝试在 Rails 上使用rack-timeout gem 。我将该行添加gem 'rack-timeout'到我的 Gemfile 并运行bundle install. (它显示Using rack-timeout (0.0.4))然后我向我的服务器提交了一个请求。它显然挂了超过 15 秒,没有返回任何东西给我。我错过了什么?

4

1 回答 1

7

当抛出 Rack::Timeout 错误时,你需要告诉 Rails 该怎么做。

  • 如果您忽略它,执行将在 15 秒后停止(或您配置的任何内容)
  • 如果您想向用户显示一个不错的错误,则需要从该异常中解救出来(如下所示)。

你可以做这样的事情

class ApplicationController < ActionController::Base

  rescue_from Timeout::Error, with: :handle_timeout

  protected
  def handle_timeout
    render "shared/timeout"
  end
end
于 2013-06-10T20:11:49.320 回答