如何在 grails 中实现请求超时?
Posted
技术标签:
【中文标题】如何在 grails 中实现请求超时?【英文标题】:How do I implement a request timeout in grails? 【发布时间】:2011-04-11 23:02:22 【问题描述】:我希望能够在 grails 中设置可配置的(通过控制器/操作)请求超时。目标是以确定性的方式处理罕见的高负载故障模式。例如,我知道如果给定的控制器/动作没有在 30 秒内返回,那么就说明出了问题,我不想让用户挂起。
如果可能,我希望在应用程序逻辑中处理此问题,因为可能会根据事件的条件进行合理的恢复或消息传递。
过滤器不起作用,因为时间可能在请求处理生命周期的任何地方到达。
【问题讨论】:
见***.com/questions/2907516/… @Tom - 我认为这不是那个的副本。引用的问题是关于会话超时;这是每个请求。 @Rob。是的,我的错。向@Chris Alef 道歉。 【参考方案1】:我认为这并不容易实现。您可能受限于您正在使用的 Servlet 容器的功能。例如,使用 tomcat 你可以设置一个connectionTimeout。不幸的是,这可能无法为您提供所需的控制,因为超时和响应更多地受容器支配。
您可能有一种方法可以使用后台线程、计时器、中断和一些黑魔法来实现,但这可能是不明智的做法。
我在该主题上找到了几个邮件列表讨论:
http://grails.1312388.n4.nabble.com/How-to-change-request-timeout-td1356007.html
Peter Led*** 从内部引用:
我不知道 Grails 的功能 这。它支持会话时间 out,但不是请求超时。 Servlet 容器有连接 超时。
http://www.mail-archive.com/users@tomcat.apache.org/msg38090.html
【讨论】:
以上是关于如何在 grails 中实现请求超时?的主要内容,如果未能解决你的问题,请参考以下文章