简单的quartz定时任务的web应用

quartz 官网:http://www.quartz-scheduler.org/
首先去官网下载 quartz-xxx.tar.gz 解压
我用的quartz-1.8.6.版本,英语好的人可以自己看文档学习
首先新建web工程,加入jar包
这里写图片描述
其中jta-1.1.jar自己上网上下载
然后再src下新建java类继承Job类
如:HelloQuartz.java

package quartz;

import java.util.Date;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
/*
 * Job接口包含唯一方法execute(),将任务逻辑添加到该方法中
 */
public class HelloQuartz implements Job {

    public void execute(JobExecutionContext context) 
            throws JobExecutionException {
        System.out.println("Hello, Quartz! "+  new Date() );
    }
}

第二步写配置文件quartz.properties,放在src下:

org.quartz.scheduler.instanceName = QuartzScheduler 
org.quartz.scheduler.instanceId = AUTO
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 3
org.quartz.threadPool.threadPriority = 5
org.quartz.jobStore.misfireThreshold = 60000
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
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_jobs.xml
org.quartz.plugin.jobInitializer.failOnFileNotFound = true
org.quartz.plugin.jobInitializer.scanInterval =10
org.quartz.plugin.jobInitializer.wrapInUserTransaction = false
org.quartz.scheduler.skipUpdateCheck = true

其中jobInitializer.fileNames放的是定时任务的一些配置

第三部新建quartz_jobs.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_1_8.xsd"
  version="1.8">
 <schedule> 
 <job>
   <name>hello_job</name> 
   <group>DEFAULT</group>
   <description>
    this is Hello......
   </description>
   <job-class>quartzWebs.HelloQuartz</job-class> 
  </job>

   <trigger>
 <cron>
  <name>hello_job_trigger</name> 
  <job-name>hello_job</job-name> 
  <cron-expression>0/5 * * * * ?</cron-expression>
 </cron> 
  </trigger>

 </schedule> 
</job-scheduling-data>

最后一步配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
 <!--  <servlet>
                <servlet-name>quartz</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>
            <init-param>  
                <param-name>start-scheduler-on-load</param-name>  
                <param-value>true</param-value>  
            </init-param> 
                <load-on-startup>1</load-on-startup>
        </servlet> -->

        <context-param>
         <param-name>config-file</param-name>
         <param-value>/quartz.properties</param-value>
     </context-param>
     <context-param>
         <param-name>shutdown-on-unload</param-name>
         <param-value>true</param-value>
     </context-param>
     <context-param>
         <param-name>start-scheduler-on-load</param-name>
         <param-value>true</param-value>
     </context-param>

     <listener>
         <listener-class>
             org.quartz.ee.servlet.QuartzInitializerListener
         </listener-class>
     </listener>

</web-app>

两种方法都可以

启动Tomcat 看控制台打印

附:

/*
 * "30 * * * * ?" 每半分钟触发任务
"30 10 * * * ?" 每小时的1030秒触发任务
"30 10 1 * * ?" 每天11030秒触发任务
"30 10 1 20 * ?" 每月2011030秒触发任务
"30 10 1 20 10 ? *" 每年102011030秒触发任务
"30 10 1 20 10 ? 2011" 2011102011030秒触发任务
"30 10 1 ? 10 * 2011" 201110月每天11030秒触发任务
"30 10 1 ? 10 SUN 2011" 201110月每周日11030秒触发任务
"15,30,45 * * * * ?"15秒,30秒,45秒时触发任务
"15-45 * * * * ?" 1545秒内,每秒都触发任务
"15/5 * * * * ?" 每分钟的每15秒开始触发,每隔5秒触发一次
"15-30/5 * * * * ?" 每分钟的15秒到30秒之间开始触发,每隔5秒触发一次
"0 0/3 * * * ?" 每小时的第00秒开始,每三分钟触发一次
"0 15 10 ? * MON-FRI" 星期一到星期五的10150秒触发任务
"0 15 10 L * ?" 每个月最后一天的10150秒触发任务
"0 15 10 LW * ?" 每个月最后一个工作日的10150秒触发任务
"0 15 10 ? * 5L" 每个月最后一个星期四的10150秒触发任务
"0 15 10 ? * 5#3" 每个月第三周的星期四的10150秒触发任务
 */

配置文件里 0/5 * * * * ?里的参数配置。

简单说到这,有什么疑问可以评论 有用的顶下

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值