在gem类超时上覆盖30秒超时



我的瘦服务器在30秒后超时。我想覆盖这个ruby文件。

DEFAULT_TIMEOUT从30秒到120秒。怎么做?请告诉我。

代码在这里:https://github.com/macournoyer/thin/blob/master/lib/thin/server.rb

我想在没有"已初始化常量"警告的情况下重写。

请参阅帮助

➜  ~/app ✓ thin --help | grep timeout
   -t, --timeout SEC                Request or command timeout in sec (default: 30)

因此,您可以在启动服务器时从命令行更改它

➜  ~/app ✓ thin --timeout 60 start

或者你可以用类似的东西在/etc/thin/your_app.yml之类的地方设置一个配置文件

---
timeout: 60

然后运行thin,用将其指向这个YAML文件

thin -C /etc/thin/your_app.yml start

附带说明一下,您应该考虑是否真的有必要增加超时时间。通常,长时间运行的请求应该排队,稍后通过delayed_jobresque 等服务运行


在看到您的评论并了解到您正在使用Heroku后,我建议您阅读文档

偶尔,web请求可能会挂起,或者您的应用程序需要过多的时间来处理。如果发生这种情况,路由器将终止请求,如果完成请求的时间超过30秒。当请求离开路由器时,超时倒计时开始。然后,应用程序必须在dyno中处理请求,然后在30秒内将响应发送回路由器,以避免超时。

如果你使用的是Heroku,我更强烈地建议你研究delayed_job、resque或类似的东西。您将至少有一个工作程序在运行以处理队列。HireFire是一项非常好的服务,只在队列中有工作要处理时才让员工排队,这样可以为您省钱。

相关内容

  • 没有找到相关文章

最新更新