在Rails中检测HTTP连接关闭

时间:2013-07-11 23:07:28

标签: ruby-on-rails http connection

当使用Nginx时,有时候当客户端提前关闭连接时,错误日志中会记录HTTP 499(例如,连接超时,用户重新加载浏览器或按下Stop或其他方式)。

我知道Nginx能够检测到这一点,因为它们会收到指示套接字已关闭的SIGPIPE信号,但是我想知道是否有可能将此通知重新发送回Rails?

Shopify最近使用very novel approach在Unicorn中检测到这个,然后将请求发送到Rails进行处理,但是我希望能够在Rails应用程序中检测到这一点,例如在长时间运行期间事务。

1 个答案:

答案 0 :(得分:1)

在Rails的调度程序已经开始处理请求之后 - 再也没有与http客户端的连接,只有当处理完成时 - 响应才会返回给客户端。

基本上,在您处理连接时,无法判断客户端(例如:浏览器)是否已关闭连接。