如何在grails中实现请求超时?

时间:2010-09-14 01:37:34

标签: grails timeout request

我希望能够在grails中设置可配置(通过控制器/操作)请求超时。目标是以确定的方式处理罕见的高负载故障模式。例如,我知道如果一个给定的控制器/动作在30秒内没有返回,那么就会出现严重的错误,我不想让用户停下来。

如果可能的话,我想在应用程序逻辑中处理这个问题,因为可能会有合理的恢复或消息传递,具体取决于事件的条件。

过滤器不起作用,因为在请求处理生命周期的任何地方都可以到达时间。

1 个答案:

答案 0 :(得分:1)

我认为这不容易实现。您可能只受限于您正在使用的Servlet容器的功能。例如,使用tomcat,您可以设置connectionTimeout。不幸的是,这可能无法为您提供您所要求的控制权,因为超时和响应更容易受到容器的支配。

可能有一种方法可以用背景线程,计时器,中断和一些黑魔法来做,但这可能是一个不明智的事情。

我在这个主题上找到了几个邮件列表讨论: