高效定时调度算法原理与实现

    目录

    • 理解定时任务

    • 定时任务基本算法

    • 基本定时程序完善

      • 完善添加任务操作

      • 完善调度操作

    • 哈希定时调度算法

    • 级联时间调度算法

理解定时任务

在实际应用中,经常会碰到定时的需求场景,大概分为以下几类:

  1. 一次性的定时需求,比如未来某一时刻执行某操作,如 2020 年 11 月 11 日 0 点发送双十一活动预约结果通知;

  2. 延时一段时间执行某操作,如下单 30 分钟未付款则关闭订单等;

  3. 周期性的定时需求,比如客户端与服务器之间的活跃状态检查,每 30 秒没有“心跳”则认为链接失效;每天早上 9 点定时发送邮件通知;

  4. 自定义时间表达式,比如 crontab,这样的例子如每月 1 号,每周 5 执行,或者每月第 1 周的周 5 执行某操作。

但无论是哪一种情况,定时任务都可以分解为“计算下一次触发时间”这样的基本操作。比如每天早上 9 点发邮件这样的周期任务,假如当天时间 2020 年 11 月 3 日 9 点 0 分 0 秒,那么在执行完本次定时触发任务之后其下一次触发时间是为 2020 年 11 月 4 日 9 点 0 分 0 秒,再下一次触发时间为 2020 年 11 月 5 日 9 点 0 分 0 秒,依次类推;再比如下单后 30 分钟没有付款自动关闭订单这样的延时定时任务,假如

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值