我有一个 ruby 守护程序,它从数据库中选择 100 条记录并使用它执行任务。
为了让它更快,我通常创建同一个守护进程的 3 个实例。并且每一个都使用 mysqlLIMIT
和OFFSET
.
问题是有时一项任务会使用相同的数据记录执行 2 或 3 次。
所以我认为只信任数据库是不够的……因为有时两个或更多守护进程实际上可以同时收集相同的数据LIMIT
。OFFSET
我怎样才能安全地做到这一点?避免2个实例选择相同的数据
- 守护进程 1 => 选择从 1 到 100 的记录
- 守护进程 2 => 选择从 101 到 200 的记录
- 守护进程 3 => 选择从 201 到 300 的记录