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

标签 ruby-on-rails ruby tcp xmlhttprequest action

我想知道 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/

相关文章:

ruby-on-rails - Searchkick Elasticsearch ,条件类似于行为

ruby-on-rails - Ruby on Rails - 加载缓慢并在垃圾收集器中花费大量时间

ruby - 遵循 Python/Flask Heroku 教程时出现 'foreman start' 错误

ruby - 按大写字母拆分字符串,但如果前面有空格则不拆分

Linux 中的 C 代码到 Windows 中的 C 代码

javascript - 如何正确启动websocket服务器?

mysql - 如何在 ruby​​ on rails 中向表列添加唯一性

ruby-on-rails - 如何为一项特定操作定义 Rails Helper?

ruby - ||=(或等于)在 Ruby 中是什么意思?

ruby-on-rails - 运行 ruby​​ 脚本时,Heroku 上的 Ruppell 套接字崩溃(权限被拒绝)