我需要为rails网站实现一项功能,该功能将涉及读取和导出我的大部分数据库。
我知道这个操作需要一段时间。那很好 - 我的工作推迟了。
我担心的是在作业运行期间数据发生了变化,导致导致导致导致损坏。
我最初的想法是在事务中执行所有读取操作。但是,如果可能的话,我还想同时运行读取。 ActiveRecord文档说不能在Connections之间共享事务,并且不能在线程之间共享Connections。所以看起来我只能用这种方法限制一个线程。
有关解决方法的任何建议吗?是否有另一种方法可以为作业提供一致的不涉及交易的数据视图?或者是否有一些替代ActiveRecord / Mysql可以跨线程分发事务?