kunka
kunka是一个任务调度框架。用户只需要在Task接口中实现自己要执行的功能,并且选择合适的执行器,放入TaskManager中,就可以了完成整个任务了。
实现细节
- 整个任务信息存放在内存中,效率高,对任务数目做了限制
- 可以为task添加监听器,当task状态变动时,触发监听器
- 实现了四种执行器。包括单线程执行器,并发执行器,定时执行器和多子任务执行器。
- 每个执行器都内置了调度器,用户只需要添加任务,自动完成任务调度
- 每个调度器有自己的生命周期(当前是空闲1秒),自动关闭调度器和执行器(比如线程池)
整体架构
示例
//选择并发执行器,并发数10final Executorexecutor = new ConcurrentExecutor(10);//实现任务监听器final TaskListener listener = new TaskListener() { @Override public void onchange(TaskStatus taskStatus) { System.out.println("任务ID:" + taskStatus.getTaskId() + " 任务执行:" + taskStatus.getStatus() + "%"); } };//添加到任务管理中TaskManager.getInstance().addTask(new TestTask("testTask"), executor, new TaskListener[] { listener });
示例执行结果
放入199个任务到执行器,中断4号任务,并发度10
任务开始: 任务结尾: