quartz在java,javaweb中的使用

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();
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值