我的瘦服务器在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_job
或resque
等服务运行
在看到您的评论并了解到您正在使用Heroku后,我建议您阅读文档
偶尔,web请求可能会挂起,或者您的应用程序需要过多的时间来处理。如果发生这种情况,路由器将终止请求,如果完成请求的时间超过30秒。当请求离开路由器时,超时倒计时开始。然后,应用程序必须在dyno中处理请求,然后在30秒内将响应发送回路由器,以避免超时。
如果你使用的是Heroku,我更强烈地建议你研究delayed_job、resque或类似的东西。您将至少有一个工作程序在运行以处理队列。HireFire是一项非常好的服务,只在队列中有工作要处理时才让员工排队,这样可以为您省钱。