您好,登錄后才能下訂單哦!
這篇文章主要介紹“spring boot怎么整合quartz實現通過頁面操作管理定時任務”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“spring boot怎么整合quartz實現通過頁面操作管理定時任務”文章能幫助大家解決問題。
在使用之前先了解幾個關鍵詞:
Job
通過實現Job類,在實現方法中寫我們具體想要定時任務完成的工作,然后交給quartz管理。
JobDetail
Job只負責實現具體任務,所以還需要借助JobDetail來存儲一些描述Job的基本信息。
Quartz JobBuilder
為構造JobDetail實體提供的builder-style API。你可以這樣使用它來構建一個JobDetail:
@Bean
public JobDetail jobDetail() {
return JobBuilder.newJob()。ofType(SampleJob.class)
。storeDurably()
。withIdentity("Qrtz_Job_Detail")
。withDescription("Invoke Sample Job service…")
。build();
}
Spring JobDetailFactoryBean
在Spring中配置JobDetail的方式:
@Bean
public JobDetailFactoryBean jobDetail() {
JobDetailFactoryBean jobDetailFactory = new JobDetailFactoryBean();
jobDetailFactory.setJobClass(SampleJob.class);
jobDetailFactory.setDescription("Invoke Sample Job service…");
jobDetailFactory.setDurability(true);
return jobDetailFactory;
}
Trigger
觸發器,代表一個調度參數的配置,什么時候去調度:
@Bean
public Trigger trigger(JobDetail job) {
return TriggerBuilder.newTrigger()。forJob(job)
。withIdentity("Qrtz_Trigger")
。withDescription("Sample trigger")
。withSchedule(simpleSchedule()。repeatForever()。withIntervalInHours(1))
。build();
}
Scheduler
調度器,通過Job和Trigger來注冊一個調度器:
@Bean
public Scheduler scheduler(Trigger trigger, JobDetail job) {
StdSchedulerFactory factory = new StdSchedulerFactory();
factory.initialize(new ClassPathResource("quartz.properties")。getInputStream());
Scheduler scheduler = factory.getScheduler();
scheduler.setJobFactory(springBeanJobFactory());
scheduler.scheduleJob(job, trigger);
scheduler.start();
return scheduler;
}
以上是使用quartz需要知道的一些概念,其實總結起來就三個東西:job|jobDetail、trigger和schedule。也就是任務,觸發器和調度器。所以我們只要用代碼把他們實例化出來就好了。并且還可以將任務持久化到數據庫中,方便我們去各種操作任務。
quartz會在項目啟動時自動開始執行可執行狀態下的定時任務,而且還可以支持集群。
關于“spring boot怎么整合quartz實現通過頁面操作管理定時任務”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。