设置rails请求超时(执行已过期)

时间:2010-04-06 07:01:01

标签: ruby-on-rails timeout

应该是一个简单的,但谷歌没有帮助:在请求到期之前找不到让rails等待更长时间的方法

  

ActionView :: Template ::错误(执行已过期)

=> Booting Thin
=> Rails 3.2.3 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server

2 个答案:

答案 0 :(得分:4)

如果您使用gem "rack-timeout" 然后更改Rack::Timeout.timeout = 30 # seconds文件中的config/initializers/timeout.rb或更多内容。 使用此link了解更多详情。

答案 1 :(得分:2)

首先,gem list查看您的rack_timeout版本。

如果您使用的是 rack_timeout <= 0.4 ,请使用

Rack::Timeout.timeout = 30 # seconds inside the config/initializers/timeout.rb

如果您使用的是 rack_timeout> = 0.5 ,请使用以下环境变量。

service_timeout:   15     # RACK_TIMEOUT_SERVICE_TIMEOUT
wait_timeout:      30     # RACK_TIMEOUT_WAIT_TIMEOUT
wait_overtime:     60     # RACK_TIMEOUT_WAIT_OVERTIME
service_past_wait: false  # RACK_TIMEOUT_SERVICE_PAST_WAIT

在rails中,您可以将环境变量加载到.env文件中:

gem 'dotenv-rails'

在您的config / environments / development.rb(或其他)中执行以下操作:

Dotenv::Railtie.load

然后,在您的rails项目的根目录中,.env将如下所示:

RACK_TIMEOUT_SERVICE_TIMEOUT=15
RACK_TIMEOUT_WAIT_TIMEOUT=30
RACK_TIMEOUT_WAIT_OVERTIME=60
RACK_TIMEOUT_SERVICE_PAST_WAIT=false