您好,登錄后才能下訂單哦!
這篇文章主要介紹“Java怎么使用quartz實(shí)現(xiàn)定時(shí)任務(wù)”的相關(guān)知識(shí),小編通過實(shí)際案例向大家展示操作過程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“Java怎么使用quartz實(shí)現(xiàn)定時(shí)任務(wù)”文章能幫助大家解決問題。
sue.spring.quartz.cron=*/5 * * * * ?
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-quartz</artifactId> </dependency>
package com.luke.demo.schedule; import org.quartz.*; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class QuartzConfig { @Value("${sue.spring.quartz.cron}") private String testCron; /** * 創(chuàng)建定時(shí)任務(wù) */ @Bean public JobDetail quartzTestDetail() { JobDetail jobDetail = JobBuilder.newJob(QuartzTestJob.class) //添加認(rèn)證信息 .withIdentity("quartzTestDetail", "QUARTZ_TEST") .build(); return jobDetail; } /** * 創(chuàng)建觸發(fā)器 */ @Bean public Trigger quartzTestJobTrigger() { //執(zhí)行頻率 CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(testCron); //創(chuàng)建觸發(fā)器 Trigger trigger = TriggerBuilder.newTrigger() .forJob(quartzTestDetail()) //添加認(rèn)證信息 .withIdentity("quartzTestJobTrigger", "QUARTZ_TEST_JOB_TRIGGER") //添加執(zhí)行規(guī)則 .withSchedule(cronScheduleBuilder) .build(); return trigger; } }
這里的QuartzTestJob如下,方法executeInternal里就是需要定時(shí)執(zhí)行的任務(wù)。
public class QuartzTestJob extends QuartzJobBean { @Override protected void executeInternal(JobExecutionContext context) throws JobExecutionException { System.out.println("現(xiàn)在是"+ new Date()); } }
當(dāng)項(xiàng)目啟動(dòng)起來之后,就會(huì)按照設(shè)定的頻率輸出如下:
當(dāng)然也可以啟動(dòng)定時(shí)任務(wù)查詢?nèi)降姆祷亟Y(jié)果,之前做車抵貸業(yè)務(wù)的風(fēng)控系統(tǒng)的時(shí)候,請(qǐng)求了三方的數(shù)據(jù),主動(dòng)請(qǐng)求然后定時(shí)任務(wù)輪詢結(jié)果。
現(xiàn)在看來,用消息隊(duì)列實(shí)現(xiàn)也是很每秒,延時(shí)消息剛好可以滿足這個(gè)業(yè)務(wù)需求,請(qǐng)求數(shù)據(jù)然后向消息隊(duì)列中放入一個(gè)延時(shí)消息,時(shí)間到了,去請(qǐng)求結(jié)果,若是沒好,就再往消息隊(duì)列中放入一個(gè)延時(shí)消息。這樣相對(duì)于定時(shí)任務(wù)的好處是,避免了CPU空轉(zhuǎn),提升了性能。
關(guān)于“Java怎么使用quartz實(shí)現(xiàn)定時(shí)任務(wù)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。