quartz定时器入门(二)-通过配置文件配置quartz工程

quartz.properties用于存放quart的配置
job.xml 用于存放定时任务job

将这两个文件放在com.zte.quartzTest目录底下即可

pom.xml

<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.quartz-scheduler</groupId>
      <artifactId>quartz</artifactId>
      <version>2.3.0</version>
    </dependency>
    <dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz-jobs</artifactId>
    <version>2.3.0</version>
	</dependency>
	<dependency>
    <groupId>javax.transaction</groupId>
    <artifactId>jta</artifactId>
    <version>1.1</version>
</dependency>
  </dependencies>

HelloJob.java

package com.zte.quartzTest;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.quartz.Job;
import org.quartz.JobDetail;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.JobKey;

public class HelloJob implements Job
{
	public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
	    
		Date date = new Date();
	    SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	    System.out.println("现在的时间:"+ sf.format(date));
	    
	    JobDetail jobDetail = jobExecutionContext.getJobDetail();  
        JobKey jobKey = jobDetail.getKey();  
        String jobName = jobKey.getName();  
        String jobGroup = jobKey.getGroup();
        
        System.out.println(jobName);
        System.out.println(jobGroup);
	}
}

Test.java

package com.zte.quartzTest;

import java.util.Date;

import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.SimpleTrigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;

public class Test
{

	public static void main(String[] args) throws SchedulerException, InterruptedException {
		try 
		{  
			StdSchedulerFactory schedulerFactory = new StdSchedulerFactory();
			schedulerFactory.initialize("quartz.properties");
            Scheduler scheduler = schedulerFactory.getScheduler();  
            
            scheduler.start();  
            System.out.println(scheduler.getJobGroupNames());
//            Thread.sleep(5L * 1000L);  
//            scheduler.shutdown(true);  
        }
		catch (Exception e)
		{  
            e.printstacktrace();  
        } 


	}
}

quartz.properties

org.quartz.scheduler.instanceName: DefaultQuartzScheduler
#org.quartz.scheduler.instanceid:AUTO
org.quartz.scheduler.rmi.export: false
org.quartz.scheduler.rmi.proxy: false
org.quartz.scheduler.wrapJobExecutionInUserTransaction: false

org.quartz.threadPool.class: org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount: 10
org.quartz.threadPool.threadPriority: 5

org.quartz.jobStore.misfireThreshold: 60000
org.quartz.jobStore.class: org.quartz.simpl.RAMJobStore

org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.XMLSchedulingDataProcessorPlugin
org.quartz.plugin.jobInitializer.fileNames = job2.xml  
org.quartz.plugin.jobInitializer.failOnFileNotFound = true
org.quartz.plugin.jobInitializer.scanInterval = 10

job.xml

<?xml version='1.0' encoding='utf-8'?>
 <job-scheduling-data xmlns="http://www.quartz-scheduler.org/xml/JobSchedulingData"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.quartz-scheduler.org/xml/JobSchedulingData http://www.quartz-scheduler.org/xml/job_scheduling_data_2_0.xsd"
   version="2.0">
   <schedule>
   <!-- job1 -->
	<job>
		<name>MyJob1</name>
			<group>group1</group>
			<description>
				通过配置文件来执行job任务
			</description>
			<job-class>
				com.zte.quartzTest.HelloJob
			</job-class>
			<durability>false</durability>
			<recover>false</recover>
	</job>
		
		<trigger>
			<cron>
				<name>trigger</name>
				<group>trigger1</group>
				<job-name>MyJob1</job-name>
				<job-group>group1</job-group>
				<cron-expression>0/5 * * * * ?</cron-expression><!-- 每5秒执行一次-->
				</cron>
		</trigger>
	</schedule>
</job-scheduling-data>

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念