如何设置rails请求超时更长?

时间:2018-03-20 03:31:41

标签: ruby-on-rails timeout puma

我的应用程序是在rails上构建的,而web服务器则是puma。

我需要从数据库加载数据,加载所有数据需要60多秒。每次我向服务器发送get请求时,我都要等待60秒以上。

请求获取的超时是60秒,所以我总是得到504网关超时。在puma配置中找不到更改请求超时的地方。 如何将请求超时设置为超过60秒?

谢谢!

3 个答案:

答案 0 :(得分:0)

最好,您应该优化代码和查询,以便在更短的时间内做出响应,这样在生产环境中就不会出现应用程序出现大量流量的瓶颈。

如果您真的想增加响应时间,那么您可以使用机架超时来执行此操作:

https://github.com/kch/rack-timeout

答案 1 :(得分:0)

Rails本身不会超时,但是如果您正在运行Puma,请在config/puma.rb中使用worker_timeout。示例:

worker_timeout (24*60*60) if ENV['RAILS_ENV']=='development'

Source

答案 2 :(得分:0)

这里的 504 错误与 rails 服务器前面的网关有关,例如可能是 Cloudflare,或 nginx 等。

所以设置就在那里。您必须在那里增加超时,以及在 rails/puma 中。