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 "";
- }
(编辑:ASP站长网)
|