xxl-job源码分析(2)- Ring缓存

本章将围绕trigger()进行分析

前一章节介绍了核心原理:

1、获取所有即将执行的任务

2、依次执行

3、更新所有下次执行时间

问题导入:

1、当前执行时间是15:49:59,有的任务15:50:00执行,当需要

2、如果任务多,并且频繁执行,并且核心原理为同步代码块,会不会导致任务延时执行?

// PRE_READ_MS = 5000
long nowTime = System.currentTimeMillis();
// 预读:读取当前时间+5000毫秒的数据
List<XxlJobInfo> scheduleList = XxlJobAdminConfig.getAdminConfig().getXxlJobInfoDao().scheduleJobQuery(nowTime + PRE_READ_MS, preReadCount);
// 根据所有查询处的定时任务循环        
for (XxlJobInfo jobInfo: scheduleList) {
    if (nowTime > jobInfo.getTriggerNextTime() + PRE_READ_MS) {
        //     ------------------------now
        //     trigger+5000---------------
        // 当前时间 > 触发事件+5000, 说明当前任务已经错过了

        // 获取如果超过了触发时间+5000,进入到策略:1、丢弃;2、trigger触发
        MisfireStrategyEnum misfireStrategyEnum = Misfir
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值