<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
最近新到了一個專案,用到定時任務的地方是真滴多。
就稍微研究了一下,來做個demo。
其實定時任務使用很廣泛也很方便,之前做的人事管理專案,就會定期執行定時任務計算工資,對於一個saas服務來說,即時的計算所有員工的工資有點奢侈,所以在每週末計算一次就ok了。
國外有的公司是一週發一次工資,所以當時的邏輯是一週算一次。在國內就一月一次很ok了。在當時的report服務中,也是定時任務同步資料到Birt服務,然後展現資料。
現在的專案中使用的就更多了。把一些耗費效能的,資料即時性不強的都可以用定時任務在伺服器負載不高的時候進行計算。比如半夜計算商城使用者的積分,半夜計算銀行使用者行為產生的積分。銀行系統半夜計算罰息複利等。都是定時任務很好的應用例子。
下來我們舉一個列子來實現一個定時任務。
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; /** * 建立定時任務 */ @Bean public JobDetail quartzTestDetail() { JobDetail jobDetail = JobBuilder.newJob(QuartzTestJob.class) //新增認證資訊 .withIdentity("quartzTestDetail", "QUARTZ_TEST") .build(); return jobDetail; } /** * 建立觸發器 */ @Bean public Trigger quartzTestJobTrigger() { //執行頻率 CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(testCron); //建立觸發器 Trigger trigger = TriggerBuilder.newTrigger() .forJob(quartzTestDetail()) //新增認證資訊 .withIdentity("quartzTestJobTrigger", "QUARTZ_TEST_JOB_TRIGGER") //新增執行規則 .withSchedule(cronScheduleBuilder) .build(); return trigger; } }
這裡的QuartzTestJob如下,方法executeInternal裡就是需要定時執行的任務。
public class QuartzTestJob extends QuartzJobBean { @Override protected void executeInternal(JobExecutionContext context) throws JobExecutionException { System.out.println("現在是"+ new Date()); } }
當專案啟動起來之後,就會按照設定的頻率輸出如下:
當然也可以啟動定時任務查詢三方的返回結果,之前做車抵貸業務的風控系統的時候,請求了三方的資料,主動請求然後定時任務輪詢結果。
現在看來,用訊息佇列實現也是很每秒,延時訊息剛好可以滿足這個業務需求,請求資料然後向訊息佇列中放入一個延時訊息,時間到了,去請求結果,若是沒好,就再往訊息佇列中放入一個延時訊息。這樣相對於定時任務的好處是,避免了CPU空轉,提升了效能。
以上就是Java使用quartz實現定時任務範例詳解的詳細內容,更多關於Java quartz實現定時任務的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45