当请求的发起者关闭TCP / IP时,服务器端会发生什么?

时间:2017-06-07 15:21:24

标签: ruby-on-rails tcp timeout

假设我的控制器操作需要很长时间来处理请求,而不会将任何内容传回浏览器,浏览器会决定超时并关闭TCP / IP连接。

喜欢这个漂亮的代码:

class MyController
  def index
    sleep 10000
  end
end

理论上(技术上),服务器可以检测到TCP / IP通道关闭并立即在控制器中引发某种异常。

问题是:Rails(或者更确切地说,Rack)是否支持这样的事情?它真的发生了吗?是否指定了此问题的行为,或者是由一个组件(例如,thinrack中间件等实际服务器还是其他任何组件?或者服务器是否只是轻松运行直到它最终到了它的自然结束,此时它可能会在尝试写入现已不存在的TCP / IP套接字时遇到“EOS”异常?

编辑:哦,因为这可能也非常依赖于Ruby实现,我说的是Linux机器上的适度当前股票Ruby(不是JRuby或者更“特殊”的)。

0 个答案:

没有答案