当使用Nginx时,有时候当客户端提前关闭连接时,错误日志中会记录HTTP 499(例如,连接超时,用户重新加载浏览器或按下Stop或其他方式)。
我知道Nginx能够检测到这一点,因为它们会收到指示套接字已关闭的SIGPIPE信号,但是我想知道是否有可能将此通知重新发送回Rails?
Shopify最近使用very novel approach在Unicorn中检测到这个,然后将请求发送到Rails进行处理,但是我希望能够在Rails应用程序中检测到这一点,例如在长时间运行期间事务。
答案 0 :(得分:1)
在Rails的调度程序已经开始处理请求之后 - 再也没有与http客户端的连接,只有当处理完成时 - 响应才会返回给客户端。
基本上,在您处理连接时,无法判断客户端(例如:浏览器)是否已关闭连接。