分页查询时,排序字段被并发修改的情况应该如何处理?

2019-06-14 14:28:15 +08:00
 CYKun

现有一张带有更新时间字段的表,要求

  1. 一个生产者,按更新时间升序读取该表,并将记录写入队列
  2. 若干个消费者,从队列里读取记录,对其进行操作后写回数据库,并刷新其更新时间

问题出在生产者这里,最初我是直接按照更新时间排序后,分页读取数据,往队列里塞完一页后读取下一页。但是在这期间消费者已经把部分记录的时间更新了,这时读取第二页的话就有部分记录被跳过去了。如果一直读第一页的话,又会出现部分记录重复进入队列的问题。

求教各位 v2er,对这种情况有什么好的解决办法没有?

936 次点击
所在节点    问与答
3 条回复
sesmond
2019-06-14 15:10:07 +08:00
保证你处理过的数据不会再查询到,然后正常读就行。分页查完了最后再确认一下还有没有。
如果你的时间字段有逻辑冲突那就换一个。
mooncakejs
2019-06-14 15:39:52 +08:00
用 ID 排序
HuHui
2019-06-14 15:52:10 +08:00
版本号

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/573939

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX