V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zuicaidenage
V2EX  ›  Java

请教一下 Java 指定时间调用方法怎么实现呢

  •  
  •   zuicaidenage · 2018-09-17 15:21:01 +08:00 · 3067 次点击
    这是一个创建于 2251 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如说创建一个直播记录入库,设置今天下午 5 点开始,我要在 4:50 推送消息给用户直播 10 分钟后开始,除了定时任务扫表还有啥办法不?

    第 1 条附言  ·  2018-09-18 18:13:28 +08:00
    感谢各位的解答,由于项目比较赶,所以暂时先用定时任务扫表实现了,我这边的场景是新增一条直播记录的时候根据直播开始时间前 10 分钟来推送消息,调用方法的时间是不固定的,就是说新增一条记录的时候才能知道什么时候发消息,我看了下利用消息队列死信实现的方法,但是消息出队只能先进先出,不能保证先到期的先发,redis 的到期回调感觉可以,有空研究下。
    11 条回复    2018-09-18 15:19:32 +08:00
    victrec
        1
    victrec  
       2018-09-17 15:32:04 +08:00   ❤️ 2
    quartz?
    simonliu2018
        2
    simonliu2018  
       2018-09-17 15:36:34 +08:00
    我能说有这么巧吗?前几个月刚设计了一套高性能定时任务系统,基于 HashedWheelTimer 实现的,业务同学再也不用扫描表来做定时任务了。

    ![DEMO]( https://image.ibb.co/cxcqUz/2018_09_17_3_31_54.png)
    jsshaojinjie
        3
    jsshaojinjie  
       2018-09-17 15:36:40 +08:00
    Timer,TimerTask,Scheduled
    lurenw
        4
    lurenw  
       2018-09-17 15:37:29 +08:00
    用 redis,在到期时设置一个 callback
    orc
        5
    orc  
       2018-09-17 16:02:00 +08:00 via iPhone
    找找任务定时调度框架
    HidingKing
        6
    HidingKing  
       2018-09-17 16:11:19 +08:00
    用消息队列。单机的话用 DelayQueue
    Sypher
        7
    Sypher  
       2018-09-17 16:31:08 +08:00
    crontab
    @simonliu2018 图片挂掉了
    q397064399
        8
    q397064399  
       2018-09-17 17:00:24 +08:00
    xxl-job
    bsg1992
        9
    bsg1992  
       2018-09-17 17:20:03 +08:00
    消息队列,quartz。在不就自己实现一个简单的队列系统也可以
    skypyb
        10
    skypyb  
       2018-09-18 08:58:00 +08:00
    直接用 Spring 定时任务啊
    ITyemu
        11
    ITyemu  
       2018-09-18 15:19:32 +08:00
    quartz,定时任务框架。内部包含 Scheduled,调度中心,jobDetail 具体执行的 work 或者 job,timer 具体执行时间
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   982 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 20:40 · PVG 04:40 · LAX 12:40 · JFK 15:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.