保存记录后Rails线程休眠

时间:2018-05-25 18:49:33

标签: ruby-on-rails ruby multithreading activerecord

当我尝试拨打record.save时!在线程内部,线程休眠。我需要使用一个线程进行rspec测试。

a = Thread.new do
  t = User.find(1)
  t.role = 2
  t.save!
end

这是我在控制台中收到的输出

  

主题:0x007fe1d68d9978 @(pry):125 睡眠 [32] pry(主要)>用户负载   (8.5ms)SELECT users。* FROM users WHERE usersid = 1 LIMIT 1   (0.1ms)BEGIN(0.2ms)COMMIT

1 个答案:

答案 0 :(得分:0)

你没有在线程上调用join。你需要在某个地方调用a.join,以便让主进程知道如何运行你的线程。

来自文档...

  

然后我们可以使用join暂停主线程的执行并允许我们的新线程完成。如果我们在主线程终止之前没有调用join,那么所有其他线程都将被终止。