<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>埃瑞克.城</title>
    <description></description>
    <link>http://erichen.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
          <item>
        <title>Quartz实例简介</title>
        <author>天刹孤星</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://erichen.javaeye.com">天刹孤星</a>&nbsp;
                    链接：<a href="http://erichen.javaeye.com/blog/24220" style="color:red;">http://erichen.javaeye.com/blog/24220</a>&nbsp;
          发表时间: 2006年09月11日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <span style="font-size: 9pt"><br />项目简称webapp<br />1.将Quartz的quartz-all-1.5.2.jar文件放入webapp的WEB-INF\lib下<br />2.在webapp的web.xml中加入：<br />&lt;servlet><br />&nbsp; &lt;servlet-name>QuartzInitializer&lt;/servlet-name><br />&nbsp; &lt;servlet-class>org.quartz.ee.servlet.QuartzInitializerServlet&lt;/servlet-class><br />&nbsp; &lt;load-on-startup>1&lt;/load-on-startup><br />&lt;/servlet><br />3.然后新建一个quartz.properties，放在webapp的classpath下面，即src下：<br />#<br /># Configure Main Scheduler Properties <br />#<br />org.quartz.scheduler.instanceName = TestScheduler<br />org.quartz.scheduler.instanceId = one<br />#<br /># Configure ThreadPool <br />#<br />org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool<br />org.quartz.threadPool.threadCount =&nbsp; 5<br />org.quartz.threadPool.threadPriority = 4<br />#<br /># Configure JobStore <br />#<br />org.quartz.jobStore.misfireThreshold = 5000<br />org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore<br /># ===========================================================================<br /># Configure SchedulerPlugins&nbsp; ===============================================<br /># ===========================================================================<br />org.quartz.plugin.triggHistory.class = org.quartz.plugins.history.LoggingTriggerHistoryPlugin<br />org.quartz.plugin.triggHistory.triggerFiredMessage = Trigger {1}.{0} fired job {6}.{5} at: {4, date, HH:mm:ss MM/dd/yyyy}<br />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}<br /><br />org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin<br />#定义quartz_reminder.xml（见下一步）的路径<br />org.quartz.plugin.jobInitializer.fileName = /quartz_reminder.xml<br />org.quartz.plugin.jobInitializer.overWriteExistingJobs = false<br />org.quartz.plugin.jobInitializer.failOnFileNotFound = true<br /><br />org.quartz.plugin.shutdownhook.class = org.quartz.plugins.management.ShutdownHookPlugin<br />org.quartz.plugin.shutdownhook.cleanShutdown = true<br /><br />4.新建一个quartz_reminder.xml，其中定义job和trigger的信息：<br />&lt;?xml version="1.0" encoding="UTF-8"?><br />&lt;quartz xmlns="http://www.opensymphony.com/quartz/JobSchedulingData"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; overwrite-existing-jobs="true"><br />&nbsp;&nbsp;&nbsp; &lt;job><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;job-detail><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- job 的名字 --><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;name>test-job&lt;/name><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;group>DEFAULT&lt;/group><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;description>The job description&lt;/description><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- job类的路径加类名 --><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;job-class>com.joysen.rule.scheduler.MyJob&lt;/job-class><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- job-data-map allows-transient-data="false"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;entry><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;key>burger-type&lt;/key><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;value>hotdog&lt;/value><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/entry><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;entry><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;key>dressing-list&lt;/key><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;value>ketchup,mayo&lt;/value><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/entry><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/job-data-map --><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/job-detail><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;trigger><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;cron><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- trigger 的名字 --><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;name>test-trigger&lt;/name><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;group>DEFAULT&lt;/group><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- trigger对应的job的相关信息 --><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;job-name>test-job&lt;/job-name><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;job-group>DEFAULT&lt;/job-group><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- 每5秒执行一次 --><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;cron-expression>0/5 * * * * ?&lt;/cron-expression><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/cron><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/trigger><br />&nbsp;&nbsp;&nbsp; &lt;/job><br />&lt;/quartz><br />注:<br />cron-expression表示执行job的时间<br /><br />5.然后在com.joysen.rule.scheduler下面新建MyJob.java文件<br />MyJob必须实现Quartz的Job接口<br />public class MyJob implements Job {<br />&nbsp; public void execute(JobExecutionContext context) throws JobExecutionException {<br />&nbsp; //在控制台输出如下信息。&nbsp; <br />&nbsp; System.out.println("Quartz Test");<br />&nbsp; }<br />}</span>
          <br/><br/>
          <span style="color:red;">
            <a href="http://erichen.javaeye.com/blog/24220#comments" style="color:red;">已有 <strong>4</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 11 Sep 2006 21:02:18 +0800</pubDate>
        <link>http://erichen.javaeye.com/blog/24220</link>
        <guid>http://erichen.javaeye.com/blog/24220</guid>
      </item>
      </channel>
</rss>