微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Ruby on Rails 上的客户端取消对后端的请求后会发生什么?

如何解决在 Ruby on Rails 上的客户端取消对后端的请求后会发生什么?

我想知道 ruby​​ on rails 请求是如何工作的。如果我向 Ruby on Rails 上的控制器的操作发出 XHR 请求,但在它完成之前我重新加载页面,尽管客户端未收到响应,操作是取消还是执行 all 方法,会发生什么情况? 我想知道,因为根据我的方法,我正在创建到另一台服务器的 tcp 连接以运行一些脚本,但在该方法完成之前我必须手动关闭该连接,所以我检测到一些 tcp 连接保持打开状态,我认为是因为有时请求在完成之前被取消,并且关闭tcp连接的部分方法没有正常运行。

解决方法

如果您的客户端提交了请求,并且 rails 开始处理该请求,那么即使客户端断开连接并且不等待响应,它也会继续。在 rails 控制器中,您不会看到任何错误或任何表明客户端已断开连接的内容。

此外,如果您正在进行 HTTP 调用并且不关心响应,我建议您使用某种异步队列来发出这些请求(例如 sidekiq)。这样,如果您开始关注响应,您实际上可以建立一些监控。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。