`

Quartz实例简介

阅读更多

项目简称webapp
1.将Quartz的quartz-all-1.5.2.jar文件放入webapp的WEB-INF\lib下
2.在webapp的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>
3.然后新建一个quartz.properties,放在webapp的classpath下面,即src下:
#
# 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} fired job {6}.{5} at: {4, date, HH:mm:ss MM/dd/yyyy}
org.quartz.plugin.triggHistory.triggerCompleteMessage = Trigger {1}.{0} completed firing job {6}.{5} at {4, date, HH:mm:ss MM/dd/yyyy} with resulting trigger instruction code: {9}

org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
#定义quartz_reminder.xml(见下一步)的路径
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

4.新建一个quartz_reminder.xml,其中定义job和trigger的信息:
<?xml version="1.0" encoding="UTF-8"?>
<quartz xmlns="http://www.opensymphony.com/quartz/JobSchedulingData"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        overwrite-existing-jobs="true">
    <job>
        <job-detail>
            <!-- job 的名字 -->
            <name>test-job</name>
            <group>DEFAULT</group>
            <description>The job description</description>
            <!-- job类的路径加类名 -->
            <job-class>com.joysen.rule.scheduler.MyJob</job-class>
            <!-- job-data-map allows-transient-data="false">
                <entry>
                    <key>burger-type</key>
                    <value>hotdog</value>
                </entry>
                <entry>
                    <key>dressing-list</key>
                    <value>ketchup,mayo</value>
                </entry>
            </job-data-map -->
        </job-detail>
        <trigger>
            <cron>
                <!-- trigger 的名字 -->
                <name>test-trigger</name>
                <group>DEFAULT</group>
                <!-- trigger对应的job的相关信息 -->
                <job-name>test-job</job-name>
                <job-group>DEFAULT</job-group>
                <!-- 每5秒执行一次 -->
                <cron-expression>0/5 * * * * ?</cron-expression>
            </cron>
        </trigger>
    </job>
</quartz>
注:
cron-expression表示执行job的时间

5.然后在com.joysen.rule.scheduler下面新建MyJob.java文件
MyJob必须实现Quartz的Job接口
public class MyJob implements Job {
  public void execute(JobExecutionContext context) throws JobExecutionException {
  //在控制台输出如下信息。 
  System.out.println("Quartz Test");
  }
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics