首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
V2EX  ›  问与答

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

  •  
  •   CYKun · 178 天前 · 400 次点击
    这是一个创建于 178 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    3 回复  |  直到 2019-06-14 15:52:10 +08:00
        1
    sesmond   178 天前
    保证你处理过的数据不会再查询到,然后正常读就行。分页查完了最后再确认一下还有没有。
    如果你的时间字段有逻辑冲突那就换一个。
        2
    mooncakejs   178 天前 via iPhone
    用 ID 排序
        3
    HuHui   178 天前 via Android
    版本号
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1890 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 26ms · UTC 16:14 · PVG 00:14 · LAX 08:14 · JFK 11:14
    ♥ Do have faith in what you're doing.