quartz就是在java或者javaweb中定时执行某个任务
1.在java中的使用http://blog.csdn.net/lotusyangjun/article/details/6450421/看这个
2.在javaweb中的使用
(1)引入下边的包
(2)web.xml的配置 (在web.xml里配置启动服务器,就要执行quartz.propertie文件)
<servlet>
<servlet-name>QuartzInitializer</servlet-name>
<servlet-class>
org.quartz.ee.servlet.QuartzInitializerServlet
</servlet-class>
<init-param>
<param-name>config-file</param-name>
<param-value>/quartz.properties</param-value>
</init-param>
<init-param>
<param-name>shutdown-on-unload</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
(3)quartz.properties (在src的文件夹下,在这里配置quartz的配置,quartz_data.xml是要执行的quartz整体配置)
#============================================================================
# Configure Main Scheduler Properties
#============================================================================
org.quartz.scheduler.instanceName = QuartzScheduler
org.quartz.scheduler.instanceId = AUTO
#============================================================================
# Configure ThreadPool
#============================================================================
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 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.XMLSchedulingDataProcessorPlugin
org.quartz.plugin.jobInitializer.fileNames = quartz_data.xml
org.quartz.plugin.jobInitializer.failOnFileNotFound = true
org.quartz.plugin.jobInitializer.scanInterval = 10
org.quartz.plugin.jobInitializer.wrapInUserTransaction =false
#\u9ED8\u8BA4\u4F1A\u8054\u7F51\u68C0\u67E5\u662F\u5426\u6709\u66F4\u65B0\uFF0C\u8FD8\u662Fskip\u4E3A\u597D
org.quartz.scheduler.skipUpdateCheck =true
(4)quartz_data.xml(配置quartz的所有固定执行的任务job是执行的job的name和group,job-class要执行的class。。)
<?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_1_8.xsd"
version="1.8">
<schedule>
<job>
<name>TestJob</name>
<group>JobGroup</group>
<job-class>com.quartz.TestJob</job-class>
</job>
<trigger>
<cron>
<name>DemoTrigger</name>
<group>triggerGroup</group>
<job-name>TestJob</job-name>
<job-group>JobGroup</job-group>
<cron-expression>0/3 * * * * ?</cron-expression>
</cron>
</trigger>
</schedule>
</job-scheduling-data>
(5)TestJob.java(执行类)
import java.text.SimpleDateFormat;
import java.util.Date;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class TestJob implements Job {
SimpleDateFormat DateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d = new Date();
String returnstr = DateFormat.format(d);
public void execute(JobExecutionContext arg0) throws JobExecutionException {
// TODO Auto-generated method stub
System.out.println(returnstr+"★★★★★★★★★★★");
}
}
3.在javaweb中另一张的使用
(1)web.xml
<servlet>
<servlet-name>InterRestfulTimeSerclet</servlet-name>
<servlet-class>
com.quartz.QuartzService
</servlet-class>
<load-on-startup>3</load-on-startup>
</servlet>
(2)QuartzService .java
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import org.quartz.CronTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.Trigger;
import org.quartz.impl.StdSchedulerFactory;
public class QuartzService extends HttpServlet{
private static final long serialVersionUID = 1L;
String startup = null;
public void doInterRestful() {
if (startup == null)
{
try {
//startup = "0 40 3 * * ? ";
startup ="0/3 * * * * ?";
System.out.println("startup..." + startup);
} catch (Exception e) {
startup = "0 0/30 * * * ?";
e.printStackTrace();
}
SchedulerFactory sf = new StdSchedulerFactory();
try {
Scheduler sd = sf.getScheduler();
// 创建jobDetail实例,绑定Job实现类
// 指明job的名称,所在组的名称,以及绑定job类
JobDetail job = new JobDetail("job11", "group11", TestJob.class);
Trigger trigger = new CronTrigger("trigger11", "group11", "job11", "group11", startup);
/*JobDetail job = new JobDetail("job4", "group4", InterRestfulTime.class);
Trigger trigger = new CronTrigger("trigger1", "group4", "job4", "group4", startup);*/
sd.scheduleJob(job, trigger);
sd.start();
} catch (SchedulerException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public void init() throws ServletException {
doInterRestful();
}
}