歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Java項目中定時任務之Quartz的應用

Quartz 是個開放源碼項目,提供了豐富的作業調度集。我目前接觸到的quartz只是在我做的java項目中定時執行任務,我的項目因為是在spring的基礎上搭建的想要整合quartz非常的簡單。

對於非spring項目的應用,它也很強大因為我沒有實際測試過不做介紹。如果有需要的可以查看軟件工程師 Michael Lipton 和 IT 架構師 Soobaek Jang 對 Quartz API 進行的介紹。鏈接地址:用 Quartz 進行作業調度

下面主要說一個quartz在spring項目中的應用

首先添加所需要的jar包:quartz-1.5.2.jar 和spring框架所需要的架包

首先寫個一個定時執行任務的類

public class QuartzJob {
  public void work()
    {
  Date d = new Date();
  SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss.SSS");//時:分:秒:毫秒
  System.out.println("Quartz的任務調度"+sdf.format(d));
    }
  //手動啟動測試是否定時任務是否編寫成功
  public static void main(String[] args) {
  String[] configs={"file:D:/Workspaces/MyEclipse 8.5/.metadata/.me_tcat/webapps/zcz_test/WEB-INF/classes/applicationContext-quartz.xml"};
  ApplicationContext ac=new ClassPathXmlApplicationContext(configs);
 }
}

在寫一個spring的配置文件 applicationContext-quartz.xml(名字隨便起,但要在web.xml引用)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans> 
 
      <bean id="testJob" class="quartz.QuartzJob" />
     
      <bean id="testTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> 
        <property name="jobDetail" ref="testJobDetail" /> 
        <property name="cronExpression" value="9,18,28,29,39,38,46,43,52,57 * * * * ?" /> 
    </bean> 
 
    <bean id="testJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> 
        <property name="targetObject" ref="testJob" /> 
        <property name="targetMethod" value="work" /> 
        <property name="concurrent" value="false" />
    </bean> 
     
    <bean id="localQuartzScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"  lazy-init="false"> 
      <property name="triggers"> 
          <list>
          <ref bean="testTrigger"/>
          <!--
              <ref bean="iptvCheckTrigger"/>
              <ref bean="iptvParseTrigger"/>
              <ref bean="IptvUploadTrigger"/>
              -->
          </list> 
      </property> 
    </bean>   
</beans>

Copyright © Linux教程網 All Rights Reserved