崛起於Springboot2.0.X之集成Quartz定時調度(29)

        下面是兩種方法定時任務,一個是集成quartz,另一個是spring自帶的定時任務,後者更簡單一些。spring

         該博客爲入門級博客,若是想要查看企業使用Quartz場景,點擊 --> 手動操做定時任務tomcat

一、pom依賴

        springboot2.0以後,spring-boot-starter中已經包含了quart的依賴,因此只須要添加一個依賴springboot

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-quartz</artifactId>
</dependency>

二、定時任務執行的方法類

public class MjtTask extends QuartzJobBean {

    @Override
    protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        System.out.println("開始定時計時");
    }
}

三、配置quartz類

@Configuration
public class QuartzConfig {
    @Bean
    public JobDetail uploadTaskDetail() {
        return JobBuilder.newJob(MjtTask.class).withIdentity("mjtTask").storeDurably().build();
    }

    @Bean
    public Trigger uploadTaskTrigger() {
        CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule("*/5 * * * * ?");
        return TriggerBuilder.newTrigger().forJob(uploadTaskDetail())
                .withIdentity("mjtTask")
                .withSchedule(scheduleBuilder)
                .build();
    }
}

        每五秒執行一次定時方法ide

四、運行結果圖

        項目啓動後,定時任務開始操做,如圖:spring-boot

2018-07-27 15:51:34.799  INFO 44549 --- [           main] o.s.s.quartz.SchedulerFactoryBean        : Starting Quartz Scheduler now
2018-07-27 15:51:34.799  INFO 44549 --- [           main] org.quartz.core.QuartzScheduler          : Scheduler quartzScheduler_$_NON_CLUSTERED started.
2018-07-27 15:51:34.861  INFO 44549 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2018-07-27 15:51:34.868  INFO 44549 --- [           main] com.mjt.spring5.Spring5Application       : Started Spring5Application in 6.087 seconds (JVM running for 9.163)
開始定時計時
開始定時計時
開始定時計時
開始定時計時
開始定時計時
開始定時計時
開始定時計時

五、使用Spring定時任務,更簡單

        沒有任何配置,直接添加三個註解便可。ui

@Component
@Configurable
@EnableScheduling
public class TestTask {
    @Scheduled(cron = "0/1 * * * * ?")
    public void test(){
        System.out.println("spring定時任務方法");
    }
}

    於此,咱們使用quartz就能夠應付全部的定時任務啦。spa

相關文章
相關標籤/搜索