加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

SpringBoot下使用定时任务的方式全揭秘

发布时间:2019-02-21 20:52:53 所属栏目:优化 来源:佚名
导读:本文旨在用通俗的语言讲述枯燥的知识 定时任务作为一种系统调度工具,在一些需要有定时作业的系统中应用广泛,如每逢某个时间点统计数据、在将来某个时刻执行某些动作...定时任务在主流开发语言均提供相应的API供开发者调用,在Java中,实现定时任务有很多

1. 引入quartz依赖

  1. <dependency> 
  2.    <groupId>org.springframework.boot</groupId> 
  3.    <artifactId>spring-boot-starter-quartz</artifactId> 
  4. </dependency> 

2.配置

  1. @Configuration 
  2. public class QuartzConfig { 
  3.     @Bean 
  4.     public JobDetail quartzDetail(){ 
  5.         return JobBuilder.newJob(QuartzTest.class).withIdentity("QuartzTest").storeDurably().build(); 
  6.     } 
  7.     @Bean 
  8.     public SimpleTrigger quartzTrigger(){ 
  9.         SimpleScheduleBuilder scheduleBuilder = SimpleScheduleBuilder.simpleSchedule() 
  10.                 .withIntervalInSeconds(10) 
  11.                 .repeatForever(); 
  12.         return TriggerBuilder.newTrigger().forJob(quartzDetail()) 
  13.                 .withIdentity("QuartzTest") 
  14.                 .withSchedule(scheduleBuilder) 
  15.                 .build(); 
  16.     } 

3. 测试

  1. public class QuartzTest extends QuartzJobBean { 
  2.     @Override 
  3.     protected void executeInternal(JobExecutionContext jobExecutionContext){ 
  4.         System.out.println("quartz执行一次定时任务 "); 
  5.     } 

5. 使用Scheduled注解

@Scheduled是spring为定时任务而生的一个注解,查看注解的源码:

  1. @Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE}) 
  2. @Retention(RetentionPolicy.RUNTIME) 
  3. @Documented 
  4. @Repeatable(Schedules.class) 
  5. public @interface Scheduled { 
  6. //cron表达式 
  7.     String cron() default ""; 
  8. //接收一个java.util.TimeZone#ID。 
  9.     String zone() default ""; 
  10. //上一次执行完毕时间点之后多长时间再执行 
  11.     long fixedDelay() default -1; 
  12. //支持占位符形式的字符串类型的fixedDelay 
  13.     String fixedDelayString() default ""; 
  14. //上一次开始执行时间点之后多长时间再执行 
  15.     long fixedRate() default -1; 
  16. //支持占位符形式的字符串类型的fixedRateString 
  17.     String fixedRateString() default ""; 
  18. //第一次延迟多长时间后再执行     
  19.     long initialDelay() default -1; 
  20. //支持占位符形式的字符串类型的initialDelay 
  21.     String initialDelayString() default ""; 

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读