我想知道 ruby on Rails 请求是如何工作的。如果我向 Ruby on Rails 上的 Controller 的操作发出 XHR 请求,但在完成之前重新加载页面,会发生什么情况?该操作是否被取消,或者尽管客户端未收到响应,该操作仍执行所有方法? 我想知道,因为根据我的方法,我正在创建一个到另一台服务器的 tcp 连接来运行一些脚本,但在该方法完成之前,我必须手动关闭该连接,所以我检测到一些 tcp 连接保持打开状态,我认为是因为有时请求在完成之前就被取消,并且关闭 tcp 连接的方法部分没有运行。
最佳答案
如果您的客户端提交了请求,并且rails开始处理该请求,那么即使客户端断开连接并且不等待响应,它也会继续。在 Rails Controller 中,您不会看到任何错误或任何表明客户端已断开连接的内容。
此外,如果您正在进行 HTTP 调用并且不关心响应,我建议使用某种异步队列来发出这些请求(例如 sidekiq)。这样,如果您开始关心响应,您实际上可以建立一些监控。
关于ruby-on-rails - Ruby on Rails 上的客户端取消对后端的请求后会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67591187/