如何在ActiveRecord :: Base.transaction之间强制插入

时间:2018-09-10 17:33:39

标签: ruby-on-rails activerecord transactions

我正在批量处理数据。因此,我希望最终用户知道要处理多少数据。因此,我更新了消息,如下所示,并每隔5秒从前端提取一次。问题是,除非整个交易成功,否则它不会反映消息的更改,这实际上是最终消息,例如“ 5000 of 5000”。

这就是我所做的:

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

现在,我知道这可能有点愚蠢,但是有一种方法可以强制该消息反映在数据库中,而与事务处理结果无关。我稍后会处理。

谢谢。

0 个答案:

没有答案