折腾了一周的Java Quartz已完成任务调度,很遗憾没能搞定,网上的相关文章也少得可怜,在多计数器(多进程)环境下Quartz似乎无法动态增减任务,恼火。一个简单的任务调度器,结果只花了不到2天时间,而且感觉非常简单好用,代码量也不多,扩展性很好。
实现一个分布式的任务调度器有几个关键的考虑点
单次任务和循环任务好做,难的是cron表达式的解析和时间计算怎么做?
多进程同一时间如何保证一个任务的互斥性?
如何动态变更增加和减少任务?
代码实例
在深入讲解实现方法之前,我们先来看看这个调度器是