如何解决在 Ruby on Rails 上的客户端取消对后端的请求后会发生什么?
我想知道 ruby on rails 请求是如何工作的。如果我向 Ruby on Rails 上的控制器的操作发出 XHR 请求,但在它完成之前我重新加载页面,尽管客户端未收到响应,操作是取消还是执行 all 方法,会发生什么情况? 我想知道,因为根据我的方法,我正在创建到另一台服务器的 tcp 连接以运行一些脚本,但在该方法完成之前我必须手动关闭该连接,所以我检测到一些 tcp 连接保持打开状态,我认为是因为有时请求在完成之前被取消,并且关闭tcp连接的部分方法没有正常运行。
解决方法
如果您的客户端提交了请求,并且 rails 开始处理该请求,那么即使客户端断开连接并且不等待响应,它也会继续。在 rails 控制器中,您不会看到任何错误或任何表明客户端已断开连接的内容。
此外,如果您正在进行 HTTP 调用并且不关心响应,我建议您使用某种异步队列来发出这些请求(例如 sidekiq)。这样,如果您开始关注响应,您实际上可以建立一些监控。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。