`
qiuyujia
  • 浏览: 171218 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

web--quartz 详解

阅读更多
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
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics