sakudie
V2EX  ›  问与答

如何防止自动任务执行的时候,用户手动去触发造成的冲突

  •  
  •   sakudie · Aug 29, 2019 · 1430 views
    This topic created in 2610 days ago, the information mentioned may be changed or developed.

    就像自动扣款的场景,每天定时执行自动扣费任务,偶尔会碰到用户在同一时间去手动缴费,由于扣款业务链路比较长,也没有事务,很容易造成重复扣费,目前处理方法是两边设置一个相同 key 的 redis 锁,执行的时候检测是否存在锁,如果存在说明某个流程开始处理了,另外一个流程就跳过不处理。 请教大家有什么好的处理方式解决这个问题吗 😂

    3 replies  •  2019-08-30 12:30:42 +08:00
    shoaly
        1
    shoaly  
       Aug 29, 2019
    每天到点 关闭用户手动充值功能, 提示系统维护
    wingoo
        2
    wingoo  
       Aug 29, 2019
    基本是这样处理, 做用户锁, 而不要做自动扣款的大锁
    前端展示上也可以做些优化
    boob
        3
    boob  
       Aug 30, 2019 via Android
    我先问个,如果用户手动缴费 2 次,如何? 一般思路都是每天缴费成功有个标志,最后扣款前看标志, 不管你自动还是手动,都不会重复扣费
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1075 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 18:41 · PVG 02:41 · LAX 11:41 · JFK 14:41
    ♥ Do have faith in what you're doing.