sidekiq工作是否在大型交易中运行?
我在我们的网络应用程序上运行了一个大型记录导入作业。导入由PORO运行,该PORO计算需要导入的对象数量,并将数字除以当前对象的当前对象的索引,从而为我提供了一种计算完成百分比的简洁方法。在进行此计算后,我将此百分比保存到数据库中,以便轮询它并让用户知道此导入的进度。
看起来sidekiq不允许这些数据库写入触摸数据库,直到整个作业结束,让我留下这个问题:
每个sidekiq作业是否完全包含在交易中?
(我不是很懒,我只是没有足够的时间来完成代码并自己发现。)
最佳答案:
2 个答案:
答案 0 :(得分:1)
不,Sidekiq本身并没有在交易中包装它的工作。确保您没有循环或调用循环的方法包装在事务中。
答案 1 :(得分:0)
没有。您可以使用Model.transaction { }
控制perform方法中的数据库事务边界。 Sidekiq从不接触数据库。
本文经用户投稿或网站收集转载,如有侵权请联系本站。