CYKun
V2EX  ›  问与答

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

  •  
  •   CYKun · Jun 14, 2019 · 1620 views
    This topic created in 2606 days ago, the information mentioned may be changed or developed.

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

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

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

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

    3 replies    2019-06-14 15:52:10 +08:00
    sesmond
        1
    sesmond  
       Jun 14, 2019
    保证你处理过的数据不会再查询到,然后正常读就行。分页查完了最后再确认一下还有没有。
    如果你的时间字段有逻辑冲突那就换一个。
    mooncakejs
        2
    mooncakejs  
       Jun 14, 2019 via iPhone
    用 ID 排序
    HuHui
        3
    HuHui  
       Jun 14, 2019 via Android
    版本号
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2765 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 12:16 · PVG 20:16 · LAX 05:16 · JFK 08:16
    ♥ Do have faith in what you're doing.