我的瘦服务器在30秒后超时。我想覆盖这个ruby文件。
DEFAULT_TIMEOUT从30秒到120秒。怎么做?请告诉我。
代码在这里: https://github.com/macournoyer/thin/blob/master/lib/thin/server.rb
我想覆盖没有“已经初始化的常量”警告。
答案 0 :(得分:5)
参见帮助
➜ ~/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
然后运行瘦,用
指向此YAML文件thin -C /etc/thin/your_app.yml start
作为旁注,您应该考虑是否真的需要增加超时。通常,长时间运行的请求应排队,稍后通过delayed_job
或resque
等服务运行
在看到您的评论并了解到您正在使用Heroku之后,我建议您阅读 the documentation
有时,Web请求可能会挂起,或者您的应用程序需要花费大量时间来处理。当发生这种情况时,路由器将终止请求,如果完成时间超过30秒。当请求离开路由器时,超时倒计时开始。然后,您的应用程序必须在dyno中处理该请求,然后在30秒内将响应传送回路由器以避免超时。
如果您使用Heroku,我甚至会更强烈建议您查看delayed_job,resque或类似信息。您将至少有一个工作程序正在运行以处理队列。 HireFire是一项优质服务,只需在您的队列实际有待处理的工作时启动工作人员来节省资金。