如何解决新线程在测试中使用与主线程相同的连接
我在 Rails 控制台中运行以下代码:
User.count
Thread.new { User.count; puts ActiveRecord::Base.connection_pool.connection.object_id }.join
puts ActiveRecord::Base.connection.object_id
正如我所料,我得到了两个不同的连接对象:
46981836802520
46981834013480
当我将相同的代码放入我的 minitest 测试用例时,我得到了两次相同的连接。
你知道为什么吗?这是一些最小的配置吗?
解决方法
我认为 this is the PR 引入了这种行为
此更改使用语句缓存将线程锁定为使用 单个连接 ID 而不是每个连接 ID 都无法看到对方。 此代码仅在夹具设置和拆卸中运行,因此不会 影响真实的生产数据库。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。