| 
                         1. 引入quartz依赖 
- <dependency> 
 -    <groupId>org.springframework.boot</groupId> 
 -    <artifactId>spring-boot-starter-quartz</artifactId> 
 - </dependency> 
 
  
2.配置 
 
- @Configuration 
 - public class QuartzConfig { 
 -     @Bean 
 -     public JobDetail quartzDetail(){ 
 -         return JobBuilder.newJob(QuartzTest.class).withIdentity("QuartzTest").storeDurably().build(); 
 -     } 
 -     @Bean 
 -     public SimpleTrigger quartzTrigger(){ 
 -         SimpleScheduleBuilder scheduleBuilder = SimpleScheduleBuilder.simpleSchedule() 
 -                 .withIntervalInSeconds(10) 
 -                 .repeatForever(); 
 -         return TriggerBuilder.newTrigger().forJob(quartzDetail()) 
 -                 .withIdentity("QuartzTest") 
 -                 .withSchedule(scheduleBuilder) 
 -                 .build(); 
 -     } 
 - } 
 
  
3. 测试 
 
- public class QuartzTest extends QuartzJobBean { 
 -     @Override 
 -     protected void executeInternal(JobExecutionContext jobExecutionContext){ 
 -         System.out.println("quartz执行一次定时任务 "); 
 -     } 
 - } 
 
  
5. 使用Scheduled注解
@Scheduled是spring为定时任务而生的一个注解,查看注解的源码: 
- @Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE}) 
 - @Retention(RetentionPolicy.RUNTIME) 
 - @Documented 
 - @Repeatable(Schedules.class) 
 - public @interface Scheduled { 
 - //cron表达式 
 -     String cron() default ""; 
 - //接收一个java.util.TimeZone#ID。 
 -     String zone() default ""; 
 - //上一次执行完毕时间点之后多长时间再执行 
 -     long fixedDelay() default -1; 
 - //支持占位符形式的字符串类型的fixedDelay 
 -     String fixedDelayString() default ""; 
 - //上一次开始执行时间点之后多长时间再执行 
 -     long fixedRate() default -1; 
 - //支持占位符形式的字符串类型的fixedRateString 
 -     String fixedRateString() default ""; 
 - //第一次延迟多长时间后再执行     
 -     long initialDelay() default -1; 
 - //支持占位符形式的字符串类型的initialDelay 
 -     String initialDelayString() default ""; 
 - } 
 
                          (编辑:泰州站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |