ScheduleMaster新特性之延时任务初体验
ScheduleMaster在上个月底更新到了2.0版本,在功能和代码以及文档上都往前跨了很大一步,详细信息可以参考这篇文章: https://www.cnblogs.com/hohoa/p/12772945.html 对ScheduleMaster还不熟悉的朋友可以先移步作者的系列文章: https://www.cnblogs.com/hohoa/category/1628282.html 这次的更新点主要包含: 开发了延时任务功能。 抽象出分布式锁服务并默认数据库实现。 补充了单元测试。 补充了几篇文档。 修复了已知的bug。 其中的重头戏自然是延时任务功能,所谓的延时任务就是在指定时刻执行指定逻辑,这在平时需求开发中是非常常见的,作为一款功能齐全的调度系统这当然也是必备的功能。 关于延时任务的实现原理我早期写过一篇文章 《采用简易的环形延时队列处理秒级定时任务的解决方案》 来介绍,ScheduleMaster也是在这个基础上改进而来。 当然了,其他的实现方式也还有很多,主流的实现方案可以参考下面这篇文章,整理的比较齐全: https://www.cnblogs.com/vipstone/p/12696465.html 我采用的就是比较经典的时间轮算法,原理就不再重复介绍了可以移步到我前面的文章,下面看看实现效果。 实现了什么效果 我们先通过一段测试代码看看延时队列的运行情况: