Spring Quartz 和 Spring Task使用比较

Spring Quartz 和 Spring Task执行时间对比: 
1. Quartz设置同步模式时:一个任务的两次执行的时间间隔是:“执行时间”和“trigger的设定间隔”的最大值 
2. Task默认同步模式:一个任务的两次执行的时间间隔是:“执行时间”+“trigger的设定间隔”,即一个任务完成执行后,才开始trigger计时
精确度和功能 
Quartz可以通过cron表达式精确到特定时间执行,而TimerTask不能。
Quartz拥有TimerTask所有的功能,而TimerTask则没有。 


任务类的数量 
Quartz每次执行都创建一个新的任务类对象。
TimerTask则每次使用同一个任务类对象。 


对异常的处理
Quartz的某次执行任务过程中抛出异常,不影响下一次任务的执行,当下一次执行时间到来时,定时器会再次执行任务。
TimerTask不同,一旦某个任务在执行过程中抛出异常,则整个定时器生命周期就结束,以后永远不会再执行定时器任务。
Spring Quartz 特点: 
1. 默认多线程异步执行 
2. 一个任务在上一次调度未完成执行,下一次调度时间到时,会另起一个线程开始新的调度。在业务繁忙时,一个任务或许会有多个线程在执行,导致数据处理异常。 
3. 单任务同步:配置属性,可以使一个任务的一次调度在未完成时,而不会开启下一次调度 
4. 多个任务同时运行,任务之间没有直接的影响,多任务执行的快慢取决于CPU的性能 
5. SchedulerFactoryBean不能使用注解来配置?还是我没找到注解的方法?
Spring Task特点: 
1. 默认单线程同步执行 
2. 一个任务执行完上一次之后,才会执行下一次调度 
3. 多任务之间按顺序执行,一个任务执行完成之后才会执行另一个任务 
4. 多任务并行执行需要设置线程池 
5. 全程可以通过注解配置
Spring Quartz配置: 
1. 配置Job,job的targetObject可以使用spring注解@Service(value = “findObjectService”)配置的bean 
2. 配置Trigger 
3. 配置Scheduler
<
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
 
       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
 
   
 
     
 
     
 
   
 
 
 
 
          class="org.springframework.scheduling.quartz.SimpleTriggerBean">
 
   
 
     
 
      
 
 

 
 
 
   
 
     
 
       
 
     

 
   

 
 



Spring Task配置: 
1. 执行方法添加@Scheduled注解 
2. 配置线程池
@Scheduled(cron = "0/1 * *  * * ? ")


public void startJob() {......}






       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:task="http://www.springframework.org/schema/task"
       xsi:schemaLocation="
 
        http://www.springframework.org/schema/beans
 
        http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
 
        http://www.springframework.org/schema/context  
 
        http://www.springframework.org/schema/context/spring-context-3.1.xsd
 
        http://www.springframework.org/schema/task  
 
        http://www.springframework.org/schema/task/spring-task-3.1.xsd">




你可能感兴趣的:(java编程)