這篇文章主要介紹了spring整合Quartz框架過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
1.Quartz框架簡介
Quartz是一個完全由Java編寫的開源任務(wù)調(diào)度的框架,通過觸發(fā)器設(shè)置作業(yè)定時運行規(guī)則,控制作業(yè)的運行時間。其中quartz集群通過故障切換和負載平衡的功能,能給調(diào)度器帶來高可用性和伸縮性。主要用來執(zhí)行定時任務(wù),如:定時發(fā)送信息、定時生成報表等等。
Quartz框架的主要特點:
? 強大的調(diào)度功能,例如豐富多樣的調(diào)度方法,可以滿足各種常規(guī)和特殊需求; ? 靈活的應(yīng)用方式,比如支持任務(wù)調(diào)度和任務(wù)的多種組合,支持數(shù)據(jù)的多種存儲; ? 支持分布式集群,在被Terracotta收購之后,在原來基礎(chǔ)上進行了進一步的改造。2.Quartz框架的使用
2.1搭建環(huán)境
<!--定時任務(wù) --><dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.2.3</version></dependency>2.2 配置任務(wù)
2.2 配置任務(wù)類
package cn.test.manager.job;import java.util.Date;public class MyJob { public void run() { System.out.println("執(zhí)行任務(wù)調(diào)度:"+new Date()); }}
2.3 整合Spring
<!-- 定義一個任務(wù)類 到達時間執(zhí)行的方法的所在類--><bean class="cn.test.manager.job.MyJob"></bean><!-- 任務(wù)類描述 --><bean class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <!--將任務(wù)類交給工廠--> <property name="targetObject" ref="myJob"></property> <!--將時間到達執(zhí)行的方法交給工廠--> <property name="targetMethod" value="run"></property></bean><!-- 觸發(fā)器 --><bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> <!--將任務(wù)類描述交給觸發(fā)器--> <property name="jobDetail" ref="jobDetail"></property> <!--Cron表達式,定時規(guī)則--> <property name="cronExpression" value="0/5 * * * * ? *"></property></bean><!-- 總管理容器 --><bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean" > <property name="triggers"> <list> <ref bean="mailTrigger"/> </list> </property></bean>
3.Cron表達式
對于Quartz,我們使用的時候主要是注重兩個方面,一個是定時任務(wù)的業(yè)務(wù),另一個就是Cron表達式。
3.1cron表達式的格式
QuartzCron 表達式支持到七個域
名稱 | 是否必須 | 允許值 | 特殊字符 |
---|---|---|---|
秒 | 是 | 0-59 | , - * / |
分 | 是 | 0-59 | , - * / |
時 | 是 | 0-23 | , - * / |
日 | 是 | 1-31 | , - * ? / L W C |
月
學習交流
熱門圖片
猜你喜歡的新聞
新聞熱點 2024-06-26 22:28:41
2024-06-26 22:26:16
2024-06-26 22:23:01
2024-06-25 19:29:23
2024-06-25 19:22:14
2024-06-25 19:19:15
疑難解答 圖片精選 |