java定时器总结

1.timer(所有任务都是同一个线程调度【串行执行】,同一时间只能有一个任务执行且前一任务延迟或异常会影响后面任务)基本不用

2.scheduledExecutor(任务并发执行,互相不会影响)

timer和scheduledExecutor仅能提供基于开始时间与重复间隔的任务调度,不能胜任复杂的调度(如每星期二16:38:10执行任务)要借助calendar实现(麻烦)

3.quartz(关机后定时状态持久化到数据库麻烦)

4.JCronTab与quartz相比

支持多种任务调度持久化方法(文件,数据库,xml)

5.spring-task(一旦某任务执行过程抛出异常,整个定时器生命周期结束【串行】)

@Scheduled,要在启动类加上@EnableScheduling注解启动定时器

你可能感兴趣的:(java定时器总结)