grails - 与客户端的连接丢失时取消请求

标签 grails

我注意到,在标准grails环境中,即使客户端连接丢失并且结果无法再传递,请求始终会执行到最后。

有没有一种方法可以配置环境,使得一旦客户端连接丢失,请求的执行就会被取消?

更新:感谢您的回答。是的-我可以避免的大多数问题都可以通过更好的编码来避免:

  • 缓存可以使几乎每个页面都变得快速
  • token 可以帮助避免两次提交内容

  • 但是有些请求仍然会花费一些时间。让我们以 map 服务为例。计算路线需要一些时间。一种避免重新提交请求的解决方案可以是“calculationInProgress”标志以及一条发给用户的消息。但是,为了进行DOS攻击,仍然可以创建很多 session ,从而创建很多请求...

    我还是很好奇:没有办法配置服务器取消请求吗?我曾经在服务器表现为这种方式的系统上进行开发,这很棒:-)

    最佳答案

    可能没有这种方法。而且我敢肯定grails(和您的web容器)旨在

  • 接受传入请求
  • 在服务器端
  • 处理它
  • 发送回复

  • 如果在第2阶段发生了某些事情,我只会在发送响应阶段知道这一点。实际上,您可以自己将数据发送到HttpSerlvetRespone,处理IOException等-但我认为这将是太多的低级方法。在准备要发送的数据时,它不会帮助您取消数据库操作。

    顺便说一句,使用nginx这样的Web前端是一种常见的模式,它接受传入的请求并处理已取消的请求,缓慢的请求(我想这是真正的问题?)等所有问题。

    关于grails - 与客户端的连接丢失时取消请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8676880/

    相关文章:

    data-binding - Grails - 向 params 映射添加参数

    grails - Grails服务MongoDB

    javascript - Grails从脚本标签中删除参数

    grails - 将Grails日志记录配置与Config.groovy分开?

    grails - Grails Spring安全性休息超时问题

    grails - 动态默认属性 grails

    java - 为什么不添加外键约束groovy/grails

    database - 我可以在没有数据源的情况下配置 Grails 吗?

    grails - 随时随地进行外部化配置更改

    templates - Grails:将 taglib 中的模板渲染为 HTML