我正在将Que与Sequel gem 一起使用,如果编写需要处理大量数据的作业是否安全,我很感兴趣,这些作业比可以安全放置在 1 个数据库事务中的数据多,例如 80k+ 行的导入/导出定期(我目前处理 1k 记录事务批次中的记录)。
我担心的是 gem/postgres 是否围绕后台工作程序执行某种隐式事务,这可能会使回滚段失控并使数据库崩溃。
我问这个的原因是,文档中的这一行:
安全性——如果一个 Ruby 进程死掉了,它正在工作的工作不会丢失,或者处于锁定或模棱两可的状态——它们会立即可供任何其他工作人员使用。
对我来说,这尖叫着“嵌套在事务中”,如果我的担心是真的,这可能会导致我的 80k 记录默默地包装到同一个回滚段中。我可以在我的笔记本电脑上试一试,但我的笔记本电脑比生产虚拟机强得多,所以我担心它可能会成功地在我的开发环境中运行,然后在部署中崩溃。
有类似Que经验的人可以帮忙吗?
链接:关于 GH 的相同问题