对spring定时器任务设计一个接口!求各方解答!

项目中用到很多定时器,现在要求设计一个接口统一管理,站在业务的角度,这个接口需要考虑什么呢?急!!!

1.启动一个任务调度中心的服务,独立调度任务
2.开放一个任务调度的接口,支持任务的增删改
3.这个开放的接口需要接收两个必要参数
参数一:任务的执行表达式expression 如 0/30 * * * * *?
参数二:执行任务的调用地址或服务,就是任务触发的时候需要执行的事情

上面的服务可以基于spring的定时器,加上持久化工具保存任务
持久化可以是文本/数据库/redis/zookeeper等但不限于这些;
这样就是做一个任务调度中心,并且可以加上一个调度监控程序
任务调度服务死掉后的处理由监控程序实现;

简单的一个思路,具体你要怎么做就看你自己了

1.设计一个顶级的父类例如:BaseSchedule

public abstract class BaseSchedule{

//执行定时任务
public abstract void doTask();
//处理其他的
public void doOtherTask(){
}
}

2.其他定时器都是子类,继承父类
public class ChildSchedule extend BaseSchedule{

//子类实现

}

3.调用的时候 统一调用BaseSchedule的doTask,即可统一管控

@Scheduled(cron = "0 */10 * * * ?")

xxl-job 管理任务的启停,设置cron

1:使用spring-schedule开启一个定时任务,查询数据库,控制定时器的更新
2:使用Quataz框架管理创建,删除,更新定时任务

spring自带的schedule定时器使用很方便,但是对于定时器的更新支持不是很好,所以用quataz框架比较好