如何为 rails 中的特定 URL 设置超时

chi*_*ram 4 rack timeout ruby-on-rails

我使用机架超时,它工作正常。但我不知道如何为特定 URL 设置时间。

即使我喜欢:

映射 '/foo/bar' 做
  机架::超时.超时 = 10
结尾

不仅 /foo/bar 动作,而且每个动作都会在 10 秒后消失。

是否可以为特定 URL 设置超时?或者我应该使用机架超时以外的其他解决方案?

小智 5

如果您担心特定操作运行时间过长,我会将相关代码包装在 Timeout 块中,而不是尝试在 URL 级别强制执行超时。您可以轻松地将以下内容包装到一个辅助方法中,并在整个控制器中使用可变超时。

require "timeout'"
begin
  status = Timeout::timeout(10) {
  # Potentially long process here...
}
rescue Timeout::Error
  puts 'This is taking way too long.'
end
Run Code Online (Sandbox Code Playgroud)