Wing.Zhang专栏

架构设计提高软件质量

原创 用quartz实现自动任务执行收藏

新一篇: zt:Hibernate存CLOB字段 | 旧一篇: 异地开发项目合作做总结的经验

quartz实现自动任务执行

需求:系统里有一任务,需要定时执行
 
有一开源项目可以解决此类问题,拿来
1.       下载   到google里搜索 quartz down之
2.       加开发包quartz.jar到你的环境,至于怎么配置不多讲,自己动手。
3.       在web.xml里加入
    <servlet>
       <servlet-name>QuartzInitializer</servlet-name>
       <servlet-class>
           org.quartz.ee.servlet.QuartzInitializerServlet
       </servlet-class>
       <load-on-startup>1</load-on-startup>
    </servlet>
4.    编写要定时实行的代码。
小例子,你可以写的无比复杂根据你的需求
  package test.job;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class Myjob implements Job
{
    public void execute(JobExecutionContext context)
       throws JobExecutionException
    {
             System.out.println(“*********执行了定时任务操作*********”);
}
}
 
5.编写quartz_reminder.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>
      <name>Job_myjob</name>
      <group>DEFAULT</group>
      <job-class>com.job.Myjob</job-class>
    </job-detail>
    <trigger>
      <cron>
        <name>Trigger_job</name>
        <group>DEFAULT</group>
        <job-name>Job_myjob</job-name>
        <job-group>DEFAULT</job-group>
        <cron-expression>0 0/10 * * * ?</cron-expression>
      </cron>
 </trigger>
</job>
</quartz>
 
设置每10分钟执行一次,其他设置,请搜索其写法,呵呵
 
6.编写quartz.properties
#
# Configure Main Scheduler Properties
#
 
org.quartz.scheduler.instanceName = TestScheduler
org.quartz.scheduler.instanceId = one
 
#
# Configure ThreadPool
#
 
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 5
org.quartz.threadPool.threadPriority = 4
 
#
# Configure JobStore
#
 
org.quartz.jobStore.misfireThreshold = 5000
 
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
 
# ===========================================================================
# Configure SchedulerPlugins ===============================================
# ===========================================================================
org.quartz.plugin.triggHistory.class = org.quartz.plugins.history.LoggingTriggerHistoryPlugin
org.quartz.plugin.triggHistory.triggerFiredMessage = Trigger{1}.{0}firedjob{6}.{5}at: {4,date,HH:mm:ssMM/dd/yyyy}
org.quartz.plugin.triggHistory.triggerCompleteMessage = Trigger{1}.{0}completedfiringjob{6}.{5}at{4,date,HH:mm:ssMM/dd/yyyy}withresultingtriggerinstructioncode:{9}
 
org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
org.quartz.plugin.jobInitializer.fileName =/quartz_reminder.xml
org.quartz.plugin.jobInitializer.overWriteExistingJobs = false
org.quartz.plugin.jobInitializer.failOnFileNotFound = true
 
org.quartz.plugin.shutdownhook.class = org.quartz.plugins.management.ShutdownHookPlugin
org.quartz.plugin.shutdownhook.cleanShutdown = true
 
7.quartz_reminder.xmlquartz.properties放到WEB-INF/classes
8OK,启动你的应用服务器,一会查看执行结果。。。
 
over

发表于 @ 2006年04月07日 10:39:00|评论(loading...)|编辑

新一篇: zt:Hibernate存CLOB字段 | 旧一篇: 异地开发项目合作做总结的经验

评论:没有评论。

发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © Wing.Zhang