V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
DavidNineRoc
V2EX  ›  问与答

关于延时操作应该用队列还是定时任务?

  •  
  •   DavidNineRoc · Aug 6, 2018 · 2632 views
    This topic created in 2831 days ago, the information mentioned may be changed or developed.
    • 想请教一下,现在在做一个延迟操作的事件。
    • 必须管理员修改了商品的价格,想要在之后的三个小时生效或者现在生效都是允许的。用哪一种方法比较好?
    • 现在暂时想用 laravel 的延时队列,因为以后会有删除操作,不知道是否会有影响。
    • 希望做过这方面的大师教学一下 >_<

    • 顺便问一下,做酒店价格系统用日期好还是区间好,现在用的区间。各有什么劣势?
    5 replies    2018-08-06 17:43:01 +08:00
    kslr
        1
    kslr  
       Aug 6, 2018 via Android
    队列简单好用,分布式和并发都有了,定时自己要做不少东西。
    yidinghe
        2
    yidinghe  
       Aug 6, 2018
    延时队列本质上是把任务暂存在队列服务里面,楼主要考虑运维便利性,如果我要查询 24 小时内有哪些延时操作会触发的话,是否能够一目了然。
    DavidNineRoc
        3
    DavidNineRoc  
    OP
       Aug 6, 2018
    @kslr 第一次做这个,没什么经验。所以来请教下。
    @yidinghe 现在用的是数据库队列,保存有创建时间是生效时间
    passerbytiny
        4
    passerbytiny  
       Aug 6, 2018
    http://blog.jobbole.com/114009/
    无分布式的,建议用 HashTimeWheelTimer
    分布式情况下,先用 redis,复杂了再用 rabbitmq 方式。

    但是你这个三个小时生效,时间间隔长,又规律的(可以认为限制只能整点生效),就没必要延时任务了,直接定时任务没半小时跑一次就行。
    DavidNineRoc
        5
    DavidNineRoc  
    OP
       Aug 6, 2018
    @passerbytiny 时间肯定是不规律的,我可以是马上执行,一秒后执行,十个小时候执行。执行之后这个任务就不需要了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1761 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 16:18 · PVG 00:18 · LAX 09:18 · JFK 12:18
    ♥ Do have faith in what you're doing.