Как заставить вставку между ActiveRecord :: Base.transaction - PullRequest
0 голосов
/ 10 сентября 2018

Я обрабатываю данные партиями. Итак, я хотел, чтобы конечный пользователь знал, сколько данных обрабатывается. Поэтому я обновил сообщение, как показано ниже, и получал его из внешнего интерфейса каждые 5 секунд. Проблема в том, что оно не отражает изменения в сообщении, если только не завершена вся транзакция, которая действительно является окончательным сообщением, скажем, «5000 из 5000».

Вот что я сделал:

ActiveRecord::Base.transaction do
  # the stuff i actually want to  do in the transaction
  job.update!(message: "Processed (#{ i } of #{ total })")
end

Теперь я знаю, что это может быть немного глупо, но есть ли способ заставить сообщение отражаться в базе данных независимо от результата транзакции. Я справился с этим позже.

Спасибо.

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