ruby-on-rails - 当客户端通过 Ruby Timeout::timeout 中断时对 ActiveRecord/PostgreSQL 事务的影响
问题描述
在我们开始之前,是的,我知道使用 Ruby 的 Timeout 是一个可怕的想法。但这更像是一个思想实验。
假设我有一些 Ruby 代码封装在一个Timeout::timeout
块中,该块执行一大堆 SQL 事务(通过 ActiveRecord),来自SELECT
s、UPDATE
s 和INSERT
s。鉴于 的性质Timeout
,我们可以在准备或等待 SQL 事务完成的过程中中止。
理论上,如果对 DB 的请求在 Ruby 超时中断之前发送,事务将在 DB 上完成,但客户端将无法响应完成。当然,根据 Ruby 代码的上下文,如果需要后续事务以使我的模型被认为是完整和稳定的,以及由于代码未完全完成而导致的任何其他可能的副作用,数据最终可能是不完整的.
是否有任何其他可能的危险或副作用需要关注?交易是否有可能以其他方式挂起或失败?或者是否需要太多关于数据和应用程序的上下文级别的知识?
解决方案
推荐阅读
- javascript - 用于订阅的 PayPal 智能按钮流程存在问题
- php - php mysql固定值比率按钮获取所有状态
- aes - Python和C中的AES时间有什么区别?
- javascript - 道具在反应中解构
- jquery - ms-access 查询 sql :为每个客户端选择一行
- php - 在 jQuery attr 中使用 wp_localize_script 图像路径
- python - 按会话匹配一个 Python 列表中的项目
- laravel - 使用带有不同列名的 whereIn (Eloquent)
- javascript - 如何使用这个 json
- autodesk-forge - 关闭剖面视图中的阴影/阴影功能