我正在批量处理数据。因此,我希望最终用户知道要处理多少数据。因此,我更新了消息,如下所示,并每隔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
现在,我知道这可能有点愚蠢,但是有一种方法可以强制该消息反映在数据库中,而与事务处理结果无关。我稍后会处理。
谢谢。