Tbschedule源码阅读4:TbSchedule调度机的创建-----任务恢复暂停Timer(PauseOrResumeScheduleTask)

在任务管理线程中,当根据配置计算完成任务第一次执行开始时间和第一次结束开始时间后,将启动任务恢复/暂停调度Timer, 在该timer中主要有以下事情需要做:

  • 1.取消调度(this.cancel):启动调度后只能执行一次。
  • 2.若为暂停调度
    • 2.1 若暂停调度设置为false,那么执行如下,否则直接返回。(默认为true,若任务执行,该值被设置为false)
    • 2.2 设置暂停标志为true;
    • 2.3 若执行线程不为空,processor不为null, 停止掉执行线程,返回
    • 2.4. 重写调度信息
    • 2.5 计算下一次暂停时间,重新启动该timer;
  • 3.若为恢复调度
    • 3.1 若暂停调度标志为true, 执行如下,否则返回:
    • 3.2 设置暂停调度标志为false;
    • 3.3 根据处理的bean,选择任务对应的处理模式(NOTSLEEP 或者Sleep模式),并设置processor.
    • 3.4 重写调度信息
    • 3.5 计算下一次开始时间,并重新启动该timer.

Quetion:
当前一次调度任务还没有执行完,第二次调度时间已经到来,此时第二次调度会启动吗?

下一节将讲述TbSchedule任务的执行另外,文章最开始写作于有道笔记,为一边读代码一边写入,部分内容可能没有及时同步。可移步至任务恢复暂停

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值