1.Quartz定時輸出HelloWorld

默認你已掌握

Springboot 工程搭建
ApplicationRunner

環境信息

Quartz 2.3.2
Springboot 2.2.0
IDE:idea

搭建步驟

  1. pom文件關鍵依賴
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
  1. 定義要執行的任務
@DisallowConcurrentExecution
public class HelloJobSpring extends QuartzJobBean {

    protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        System.out.println("Hello World in HelloJobSpring Class!Time:"+new Date());
    }
}
  • QuartzJobBean是spring-boot-starter-quartz中定義的類
  1. 定義時間規則(時點、頻率等)並綁定任務
@Service
public class HelloJobSpringSchedule {
    @Autowired
    private Scheduler scheduler;

    public void scheduleJob() throws SchedulerException {
        //定義要執行的任務
        JobDetail job = JobBuilder.newJob(HelloJobSpring.class).withIdentity("job1","group1").build();
        //時間規則:每30秒執行一次
        CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule("0/30 * * * * ?");
        Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1","group1").startNow().withSchedule(scheduleBuilder).build();
        //調度:把任務和時間規則綁定起來
        scheduler.scheduleJob(job,trigger);
    }
}
  1. 讓Springboot應用啓動後執行定時任務
@Component
public class QuartzDemoAppRunner implements ApplicationRunner {
    @Autowired
    HelloJobSpringSchedule helloJobSpringSchedule;
    public void run(ApplicationArguments args) throws Exception {
        System.out.println("依賴注入完成;系統啓動參數初始化中...");
        helloJobSpringSchedule.scheduleJob();
        System.out.println("系統啓動參數初始化完成");
    }
}

參考文檔

鏈接: Quartz快速入門.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章