Quartz入門簡單案例,quartz入門

來源:互聯網
上載者:User

Quartz入門簡單案例,quartz入門

Quartz是一個任務調度架構。它可以在你指定的時間內去觸發某一個任務。

 

案例:

這裡的案例是基於Quartz 2.2.3、Maven、spring去開發完成的。

在pom.xml檔案中引入Maven相關依賴

 

 1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 2     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 3     <modelVersion>4.0.0</modelVersion> 4     <groupId>cn.wy</groupId> 5     <artifactId>FristQuartz</artifactId> 6     <version>0.0.1-SNAPSHOT</version> 7     <!-- 通過屬性定義指定jar的版本 --> 8     <properties> 9         <spring.version>4.2.4.RELEASE</spring.version>10         <slf4j.version>1.6.6</slf4j.version>11         <log4j.version>1.2.12</log4j.version>12     </properties>13 14     <dependencies>15         <dependency>16             <groupId>org.springframework</groupId>17             <artifactId>spring-context</artifactId>18             <version>${spring.version}</version>19         </dependency>20         <dependency>21             <groupId>org.springframework</groupId>22             <artifactId>spring-context-support</artifactId>23             <version>${spring.version}</version>24         </dependency>25         <dependency>26             <groupId>org.springframework</groupId>27             <artifactId>spring-orm</artifactId>28             <version>${spring.version}</version>29         </dependency>30         <dependency>31             <groupId>org.springframework</groupId>32             <artifactId>spring-beans</artifactId>33             <version>${spring.version}</version>34         </dependency>35         <dependency>36             <groupId>org.springframework</groupId>37             <artifactId>spring-core</artifactId>38             <version>${spring.version}</version>39         </dependency>40         <dependency>41             <groupId>org.aspectj</groupId>42             <artifactId>aspectjweaver</artifactId>43             <version>1.7.4</version>44         </dependency>45         <!-- log start -->46         <dependency>47             <groupId>log4j</groupId>48             <artifactId>log4j</artifactId>49             <version>${log4j.version}</version>50         </dependency>51         <dependency>52             <groupId>org.slf4j</groupId>53             <artifactId>slf4j-api</artifactId>54             <version>${slf4j.version}</version>55         </dependency>56 57         <dependency>58             <groupId>org.slf4j</groupId>59             <artifactId>slf4j-log4j12</artifactId>60             <version>${slf4j.version}</version>61         </dependency>62         <!-- 引入junit支援 -->63         <dependency>64             <groupId>junit</groupId>65             <artifactId>junit</artifactId>66             <version>4.10</version>67             <scope>test</scope>68         </dependency>69 70         <!-- 引入quartz對應的依賴 -->71         <dependency>72             <groupId>org.quartz-scheduler</groupId>73             <artifactId>quartz</artifactId>74             <version>2.2.3</version>75         </dependency>76         <dependency>77             <groupId>org.quartz-scheduler</groupId>78             <artifactId>quartz-jobs</artifactId>79             <version>2.2.3</version>80         </dependency>81     </dependencies>82 </project>

 

 

 

第一步:建立一個作業類

 1 package cn.wy.test; 2  3 import java.text.SimpleDateFormat; 4 import java.util.Date; 5 /** 6  * 自訂作業類 7  */ 8 public class TestJob { 9     public void run(){//方法名可以任意取10         System.out.println("自訂的作業類型執行了:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));11     }12 }

第二步:配置applicationContext.xml檔案

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://www.springframework.org/schema/beans                         http://www.springframework.org/schema/beans/spring-beans.xsd">    <!-- 註冊自訂作業類 -->    <bean id="testJob" class="cn.wy.test.TestJob"></bean>    <!-- 配置JobDetail -->    <bean id="jobDeteil"        class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">        <!-- 注入目標對象 -->        <property name="targetObject" ref="testJob" />        <!-- 注入目標方法 -->        <property name="targetMethod" value="run" />    </bean>    <!-- 配置Trigger觸發器 -->    <bean id="myTrigger"        class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">        <!-- 注入任務詳情對象 -->        <property name="jobDetail" ref="jobDeteil" />        <!-- 注入cronExpression運算式,通過這個運算式指定出發的時間 -->        <property name="cronExpression">            <!-- 3秒後觸發,也就是相當於是TestJob類中的run方法每隔3秒執行一次 -->            <value>0/3 * * * * ?</value>        </property>    </bean>    <!-- 配置調度工廠 -->    <bean id="schedulerFactoryBean"        class="org.springframework.scheduling.quartz.SchedulerFactoryBean">        <!-- 注入Trigger觸發器 -->        <property name="triggers">            <list>                <ref bean="myTrigger" />                <!-- 可以同時配置多個觸發器 -->            </list>        </property>    </bean></beans>

第三步:測試

1 package cn.wy.test;2 3 import org.springframework.context.support.ClassPathXmlApplicationContext;4 5 public class Test {6     public static void main(String[] args) {7         new ClassPathXmlApplicationContext("applicationContext.xml");8     }9 }

執行結果:

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.