阅读源码FluentScheduler

一直自己想实现一个定时调度器。看到很多人推荐了时间轮,也想了下用 thread下面的timer。每秒一次一次的去查找任务。并开始线程来调用。

我对几个开源的任务调度的组件比较有兴趣。前面用过了FluentScheduler,觉得这个比较简单,就打开它的代码看看。

它用的是一个timer来调度任务的。

对它内部的Schedule集合来处理。

源码是这个方法 ScheduleJobs

过程是

timer先停掉。change(-1,-1)

Schedule集合排序

空返回

获取第一个Schedule

判断其NextRun《=Now

执行任务RunJob

NextRun计算

ScheduleJobs

完毕。

原文地址:https://www.cnblogs.com/forhell/p/15507507.html