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>