两个配置文件,一个properties和一个xml
properties:
#============================================================================
# Configure Main Scheduler Properties
#============================================================================
org.quartz.scheduler.instanceName = TestScheduler
org.quartz.scheduler.instanceId = AUTO
#============================================================================
# Configure ThreadPool
#============================================================================
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
#处理的线程个数
org.quartz.threadPool.threadCount = 3
#线程优先级别,一般为5
org.quartz.threadPool.threadPriority = 5
#============================================================================
# Configure JobStore
#============================================================================
org.quartz.jobStore.misfireThreshold = 60000
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
#============================================================================
# Configure Plugins
#============================================================================
org.quartz.plugin.triggHistory.class = org.quartz.plugins.history.LoggingJobHistoryPlugin
org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
org.quartz.plugin.jobInitializer.fileNames = jobs.xml
#如果jobs.xml中存在调度器中已经有的job,true为覆盖
org.quartz.plugin.jobInitializer.overWriteExistingJobs = true
org.quartz.plugin.jobInitializer.failOnFileNotFound = true
#扫描jobs.xml的时间间隔
org.quartz.plugin.jobInitializer.scanInterval = 10000
org.quartz.plugin.jobInitializer.wrapInUserTransaction = false
xml:
<?xml version='1.0' encoding='utf-8'?>
<quartz xmlns="http://www.opensymphony.com/quartz/JobSchedulingData"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opensymphony.com/quartz/JobSchedulingData
http://www.opensymphony.com/quartz/xml/job_scheduling_data_1_5.xsd"
version="1.5">
<job>
<job-detail>
<!-- job-detail.name不能有重复,不然会执行最后一个与之相同的job-->
<name>ScanDirectory1</name>
<group>DEFAULT</group>
<description>
A job that scans a directory for files
</description>
<job-class>
com.haso.quartz.ScanDirectoryJob
</job-class>
<volatility>false</volatility>
<durability>false</durability>
<recover>false</recover>
<job-data-map allows-transient-data="true">
<entry>
<key>SCAN_DIR</key>
<value>E:/Tomcat/conf</value>
</entry>
</job-data-map>
</job-detail>
<trigger>
<cron>
<name>cron_time</name>
<group>DEFAULT</group>
<job-name>ScanDirectory1</job-name>
<job-group>DEFAULT</job-group>
<!-- 每天15点28分执行此JOB -->
<cron-expression>0 28 15 * * ?</cron-expression>
</cron>
</trigger>
</job>
<job>
<job-detail>
<name>ScanDirectory2</name>
<group>DEFAULT</group>
<description>
A job that scans a directory for files
</description>
<job-class>
com.haso.quartz.ScanDirectoryJob
</job-class>
<volatility>false</volatility>
<durability>false</durability>
<recover>false</recover>
<job-data-map allows-transient-data="true">
<entry>
<key>SCAN_DIR</key>
<value>E:/Tomcat/conf2</value>
</entry>
</job-data-map>
</job-detail>
<trigger>
<simple>
<name>scanTrigger2</name>
<group>DEFAULT</group>
<job-name>ScanDirectory2</job-name>
<job-group>DEFAULT</job-group>
<start-time>2008-09-03T14:43:00</start-time>
<!-- repeat indefinitely every 10 seconds -->
<repeat-count>-1</repeat-count>
<repeat-interval>11000</repeat-interval>
</simple>
</trigger>
</job>
</quartz>
package com.haso.quartz;
import java.util.Date;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.Trigger;
import org.quartz.TriggerUtils;
import org.quartz.impl.StdSchedulerFactory;
import com.haso.utils.Utils;
public class SimpleScheduler {
public static void main(String[] args)
{
SimpleScheduler simple = new SimpleScheduler();
try
{
// Create a Scheduler and schedule the Job
Scheduler scheduler = simple.createScheduler();
// simple.scheduleJob(scheduler);
// Start the Scheduler running
scheduler.start();
System.out.println("Scheduler started at " + Utils.dateToStr(new Date(), "yyyy-MM-dd hh:mm:ss"));
} catch (SchedulerException ex) {
ex.printStackTrace();
}
}
public Scheduler createScheduler() throws SchedulerException
{//创建调度器
return StdSchedulerFactory.getDefaultScheduler();
}
}