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