Java Blog From WeiChunHua

Java

常用链接

统计

develop

news

最新评论

quartz 详解

         最近在开发的过程中,经常要使用系统自动清零的操作,比如说:系统在给定的时间跟客户发送电子邮件,在指定的时间段内执行某些操作等等,如果我们只是人工去操作的话不但步骤非常的麻烦而且觉得这是一个工作量非常大的任务,有了quartz框架以后我们所有的任务多可以交给它去做,程序员唯一要做的只是编写代码并配置一下程序就OK了,这样大大提高了开发速度和工作效率.配置步骤如下:
1、编写quartz.properties文件:代码如下:
#============================================================================
# Configure Main Scheduler Properties 
#============================================================================
org.quartz.scheduler.instanceName = QuartzScheduler
org.quartz.scheduler.instanceId = AUTO
#org.quartz.scheduler.rmi.export = false
#org.quartz.scheduler.rmi.proxy = false
#============================================================================
# Configure ThreadPool 
#============================================================================
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 4
org.quartz.threadPool.threadPriority = 5
#============================================================================
# Configure Plugins
#============================================================================
#org.quartz.plugin.triggHistory.class = org.quartz.plugins.history.LoggingJobHistoryPlugin
org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
org.quartz.plugin.jobInitializer.fileName = /scheduler/quartz_job.xml
org.quartz.plugin.jobInitializer.overWriteExistingJobs = false
org.quartz.plugin.jobInitializer.failOnFileNotFound = true
org.quartz.plugin.jobInitializer.scanInterval = 10
org.quartz.plugin.shutdownhook.class = org.quartz.plugins.management.ShutdownHookPlugin
org.quartz.plugin.shutdownhook.cleanShutdown = true
#org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
2、编写quartz_job.xml
<?xml version='1.0' encoding='utf-8'?>
<quartz>
<job>
   <job-detail>
     <name>test</name>
     <group>DEFAULT</group>
     <description>testJobhere</description>
     <job-class>scheduler.TestJob</job-class>
     <job-data-map allows-transient-data="true">
      <entry>
       <key>name</key>
       <value>test</value>
      </entry>
    </job-data-map>
  </job-detail>
   <trigger>
              <cron>
                   <name>testCron</name>
                   <group>DEFAULT</group>
                   <job-name>test</job-name>
                  <job-group>DEFALUT</job-group>
                  <!--x/?  x表示间断启动时间  ?表示执行间隔时间  13启动时间-->
                  <cron-expression>0 1/2 23 * * ?</cron-expression>
                  <!--每月1号0点执行
                   <cron-expression>0 1 0 1 1-12 ?</cron-expression>
                   -->
              </cron>
        </trigger>
</job>
3、编写java代码进行测试:
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class ZeroCount implements Job{
    public void execute(JobExecutionContext context) throws JobExecutionException
 {
    String name = context.getJobDetail().getJobDataMap().getString("name");
System.out.println(name);

}
}
出下以下结果表示配置成功:
test
4、此步骤是最后一步也是最重要的一步,只要加入如下代码的到/WEB-INF/web.xml文件中在指定的时间内就会执行系统调度.
<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>
    <load-on-startup>1</load-on-startup>
    <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>
</servlet>

参考网站:http://www.iocblog.net/project/quartz.html

posted on 2008-11-21 14:38 sunny spring 阅读(4501) 评论(2)  编辑  收藏 所属分类: javaee

评论

# re: quartz 详解 2008-11-21 17:06 隔叶黄莺

<!--每月1号0点1分执行
<cron-expression>0 1 0 1 * ?</cron-expression>   回复  更多评论   

# re: quartz 详解 2008-11-24 08:29 congdepeng

隔叶黄莺 是quartz 的高手啊 我看过他翻译的文章  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航: