假设我的控制器操作需要很长时间来处理请求,而不会将任何内容传回浏览器,浏览器会决定超时并关闭TCP / IP连接。
喜欢这个漂亮的代码:
class MyController
def index
sleep 10000
end
end
理论上(技术上),服务器可以检测到TCP / IP通道关闭并立即在控制器中引发某种异常。
问题是:Rails(或者更确切地说,Rack)是否支持这样的事情?它真的发生了吗?是否指定了此问题的行为,或者是由一个组件(例如,thin
,rack
中间件等实际服务器还是其他任何组件?或者服务器是否只是轻松运行直到它最终到了它的自然结束,此时它可能会在尝试写入现已不存在的TCP / IP套接字时遇到“EOS”异常?