摘要:一介紹在企業應用中,我們經常會碰到時間任務調度的需求,比如每天凌晨生成前天報表,每小時生成一次匯總數據等等。三者關系簡單來說就是,調度器負責調度各個任務,到了某個時刻或者過了一定時間,觸發器觸動了,特定任務便啟動執行。
一、Quartz介紹
在企業應用中,我們經常會碰到時間任務調度的需求,比如每天凌晨生成前天報表,每小時生成一次匯總數據等等。Quartz是出了名的任務調度框架,它可以與J2SE和J2EE應用程序相結合,功能灰常強大,輕輕松松就能與Spring集成,使用方便。
二、Quartz中的概念
主要有三個核心概念:調度器、任務和觸發器。三者關系簡單來說就是,調度器負責調度各個任務,到了某個時刻或者過了一定時間,觸發器觸動了,特定任務便啟動執行。概念相對應的類和接口有:
1)JobDetail:望文生義就是描述任務的相關情況;
2)Trigger:描述出發Job執行的時間觸發規則。有SimpleTrigger和CronTrigger兩個子類代表兩種方式,一種是每隔多少分鐘小時執行,則用SimpleTrigger;另一種是日歷相關的重復時間間隔,如每天凌晨,每周星期一運行的話,通過Cron表達式便可定義出復雜的調度方案。
3)Scheduler:代表一個Quartz的獨立運行容器,Trigger和JobDetail要注冊到Scheduler中才會生效,也就是讓調度器知道有哪些觸發器和任務,才能進行按規則進行調度任務。
三、Spring中使用Quartz
1,所需jar包:quartz.jar,spring.jar,commons-collections-3.2.jar;
2,添加業務邏輯類(簡單示例):
public class UserHeartBeat {
public void Show(){
Calendar cal=Calendar.getInstance();
long date=cal.getTime().getTime(); SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS"); String result=sdf.format(date); System.out.println(result); System.out.println("Spring Quartz Test"); } public static void main(String args[]){ new UserHeartBeat().Show(); }
}
這個類的作用就是用來定義每隔多久要做的事情
3,配置文件(applicationContext.xml) 用來配置定時任務
Show 10,15,20,25,30,35,40,45,50,55 * * * * ?
其中間隔時間的配置說明見 定時任務配置的間間隔配置說明
4.在主配置文件web.xml中注冊定時任務的配置文件(applicationContext.xml)
spring org.springframework.web.context.ContextLoaderServlet 1 spring *.do 5.定義一個測試類來調用定時任務 contextConfigLocation /WEB-INF/classes/ApplicationContext.xml
public static void main(String[] args) {
System.out.println("Spring Quartz test start..."); ApplicationContext context=new ClassPathXmlApplicationContext("ApplicationContext.xml");
// 如果配置文件中將startQuertz bean的lazy-init設置為false 則不用實例化
System.out.println("Spring Quartz test end..."); }
運行效果
案例下載地址 鏈接描述
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/74766.html
摘要:本文使用實現對定時任務的增刪改查啟用停用等功能。并把定時任務持久化到數據庫以及支持集群。決定什么時候來執行任務。定義的是任務數據,而真正的執行邏輯是在中。封裝定時任務接口添加一個暫停恢復刪除修改暫停所有恢復所有 簡介 Quartz是一款功能強大的任務調度器,可以實現較為復雜的調度功能,如每月一號執行、每天凌晨執行、每周五執行等等,還支持分布式調度。本文使用Springboot+Myba...
本文來自網絡一些博客的整理(包括gong1208的博客 dary1715的博客) 1、簡介 這個系列介紹Spring框架實現定時任務的兩種方式以及一些高級的用法,包括: 1、使用Quartz,這是一個功能比較強大的的調度器,可以讓你的程序在指定時間執行,也可以按照某一個頻度執行,配置起來稍顯復雜,稍后會詳細介紹。 2、Spring3.0以后自帶的task,可以將它看成一個輕量級的Quartz,而且...
摘要:在定時器接口的方法中我們可以發現一個方法接受接口,而也是一個接口,抽象了觸發任務執行的觸發器。更常用的一個觸發器是,它使用表達式指定何時執行任務。配置定時任務首先看看配置。配置提供了命名空間,讓配置定時任務非常簡單。 本文參考自Spring官方文檔 34. Task Execution and Scheduling。 在程序中常常有定時任務的需求,例如每隔一周生成一次報表、每個月月末清...
閱讀 1706·2021-11-24 09:39
閱讀 2489·2021-11-18 10:07
閱讀 3668·2021-08-31 09:40
閱讀 3341·2019-08-30 15:44
閱讀 2637·2019-08-30 12:50
閱讀 3658·2019-08-26 17:04
閱讀 1435·2019-08-26 13:49
閱讀 1271·2019-08-23 18:05