Rails поток спит после сохранения записи - PullRequest
0 голосов
/ 25 мая 2018

Когда я пытаюсь вызвать record.save!внутри нити, нить спит.Мне нужно использовать поток для теста rspec.

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

Это вывод, который я получаю в своей консоли

Тема: 0x007fe1d68d9978 @ (pry): 125 sleep [32] pry (main)> Пользовательская нагрузка (8,5 мс) SELECT users. * ОТ users ГДЕ users. id = 1 ПРЕДЕЛ 1 (0,1 мс) НАЧАТЬ (0,2 мс) COMMIT

1 Ответ

0 голосов
/ 26 мая 2018

Вы не звоните join в теме.Вам нужно вызвать a.join где-нибудь, чтобы дать знать главному процессу о запуске вашего потока.

Из документов ...

Тогда мы можем приостановить выполнениеосновного потока и позволяют завершить наш новый поток, используя соединение.Если мы не вызовем join до завершения основного потока, все остальные потоки будут уничтожены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...