我试图在测试中重新创建一个竞争条件,所以我可以尝试一些解决方案.我发现在我在测试中创建的线程中,ActiveRecord总是返回0表示计数,nil表示查找.例如,表“foos”中有3行:
it "whatever" do puts Foo.count 5.times do Thread.new do puts Foo.count end end end
将打印@H_502_5@
3 0 0 0 0 0
test.log显示预期的查询,预期6次:@H_502_5@
SELECT count(*) AS count_all FROM `active_agents`
知道这里发生了什么吗?@H_502_5@