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

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

  •  
  •   DavidNineRoc · 2018-08-06 15:06:55 +08:00 · 2287 次点击
    这是一个创建于 2312 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • 想请教一下,现在在做一个延迟操作的事件。
    • 必须管理员修改了商品的价格,想要在之后的三个小时生效或者现在生效都是允许的。用哪一种方法比较好?
    • 现在暂时想用 laravel 的延时队列,因为以后会有删除操作,不知道是否会有影响。
    • 希望做过这方面的大师教学一下 >_<

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

    但是你这个三个小时生效,时间间隔长,又规律的(可以认为限制只能整点生效),就没必要延时任务了,直接定时任务没半小时跑一次就行。
    DavidNineRoc
        5
    DavidNineRoc  
    OP
       2018-08-06 17:43:01 +08:00
    @passerbytiny 时间肯定是不规律的,我可以是马上执行,一秒后执行,十个小时候执行。执行之后这个任务就不需要了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1144 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 18:46 · PVG 02:46 · LAX 10:46 · JFK 13:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.