Java多线程调度器实现

使用ScheduledExecutorService

调度器分为正常调度,异常调度,异常调度根据不同的队列进行时间间隔的区分,采用ScheduledExecutorService进行时间间隔调度,调度时根据当前队列中addData进队列里的数据分配线程进行处理。先看正常调度,这个类在构造函数时就会被调度,可以添加set方法,配置好进行schedule

实现的添加数据接口的定义:

重试调度(基于内存)

同样是基于ScheduledExecutorService 实现带有重试机制的调度器,不同的重试机制使用不同的调度队列。但是需要注意的是重试间隔是基于初始化调度时间的时间间隔,而不是基于线程调度失败的时间做间隔的。在线程调度后线程程序执行异常后放入重试队列再次执行的时间是不被保证的,例如重试线程池的调度时间是5MIN一次,该重试的数据只保证5分钟内被调度而不是准确的5分钟时间。所以这样的话,线程池的初始调度时间也是需要关注的。

封装添加数据的接口:

测试DEMO

写一个Main方法测试下:

One thought on “Java多线程调度器实现

Comments are closed.