Rails / Nginx中的超时 - 最佳实践

时间:2012-04-02 12:55:12

标签: ruby-on-rails ruby ruby-on-rails-3 nginx

我正在研究一个应该在Nginx服务器上运行的Rails应用程序。根据输入,应用程序可能需要很长时间来处理请求(或在出现错误时挂起),因此我希望阻止进程永远运行。除了Nginx配置,它确保客户端获得超时信号,我想我仍然可能必须确保我的应用程序停止处理这些请求。应该在哪里处理?在我的Rails应用程序中(使用std-lib中的Timeout / Thread)或外部(查杀进程)?

1 个答案:

答案 0 :(得分:1)

我通常使用Rack::Timeout在Rack层执行此操作。

# config/initializers/timeout.rb
Rack::Timeout.timeout = 10  # seconds