zoukankan      html  css  js  c++  java
  • quartz在application中的使用

    项目结构图:

    TestMain.java

     1 package com;
     2 import org.quartz.Scheduler;
     3 import org.quartz.impl.StdSchedulerFactory;
     4 
     5 public class TestMain {
     6 
     7     public static void main(String[] args) {
     8 
     9         try {
    10             // 设置quartz.properties的classpath
    11             System.setProperty("org.quartz.properties", "quartz/quartz.properties");
    12             Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
    13             scheduler.start();
    14         } catch (Exception ex) {
    15             ex.printStackTrace();
    16         }
    17     }
    18 }

    MyQuartzJob.java

     1 package task;
     2 
     3 import org.quartz.Job;
     4 import org.quartz.JobExecutionContext;
     5 import org.quartz.JobExecutionException;
     6 
     7 public class MyQuartzJob implements Job {
     8     private static int num = 0;
     9     @Override
    10     public void execute(JobExecutionContext arg0) throws JobExecutionException {
    11         System.out.println("Hello World! " + num++);
    12     }
    13 }

    quartz_jobs.xml

     1 <?xml version='1.0' encoding='utf-8'?>
     2 <quartz xmlns="http://www.opensymphony.com/quartz/JobSchedulingData"
     3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4     xsi:schemaLocation="http://www.opensymphony.com/quartz/JobSchedulingData  
     5   http://www.opensymphony.com/quartz/xml/job_scheduling_data_1_5.xsd"
     6     version="2.0.2">
     7 
     8     <!-- 每3秒执行一次 -->
     9     <job>
    10         <job-detail>
    11             <name>MyQuartzJob</name>
    12             <description></description>
    13             <group>Server</group>
    14             <job-class>task.MyQuartzJob</job-class>
    15             <job-data-map allows-transient-data="true" />
    16         </job-detail>
    17         <trigger>
    18             <cron>
    19                 <name>MyQuartzJobbTriger</name>
    20                 <group>Server</group>
    21                 <job-name>MyQuartzJob</job-name>
    22                 <job-group>Server</job-group>
    23                 <cron-expression>0/3 * * * * ?</cron-expression>
    24             </cron>
    25         </trigger>
    26     </job>
    27     
    28 </quartz>  

    quartz.properties

    #============================================================================  
    # Configure Main Scheduler Properties    
    #============================================================================  
    org.quartz.scheduler.instanceName = TestScheduler  
    org.quartz.scheduler.instanceId = AUTO  
    #============================================================================  
    # Configure ThreadPool    
    #============================================================================  
    org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool  
    #处理的线程个数  
    org.quartz.threadPool.threadCount = 10
    #线程优先级别,一般为5  
    org.quartz.threadPool.threadPriority = 5  
    org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread: true
    #============================================================================  
    # Configure JobStore    
    #============================================================================  
    org.quartz.jobStore.misfireThreshold = 60000  
    org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore  
    #============================================================================  
    # Configure Plugins   
    #============================================================================  
    org.quartz.plugin.triggHistory.class = org.quartz.plugins.history.LoggingJobHistoryPlugin  
    org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin  
    # fs notice : the classpath of quartz_jobs.xml
    org.quartz.plugin.jobInitializer.fileNames = quartz/quartz_jobs.xml
    #如果jobs.xml中存在调度器中已经有的job,true为覆盖  
    org.quartz.plugin.jobInitializer.overWriteExistingJobs = true  
    org.quartz.plugin.jobInitializer.failOnFileNotFound = true  
    #扫描jobs.xml的时间间隔  
    org.quartz.plugin.jobInitializer.scanInterval = 60000  
    org.quartz.plugin.jobInitializer.wrapInUserTransaction = false  

      

  • 相关阅读:
    面向接口程序设计思想实践
    Block Chain Learning Notes
    ECMAScript 6.0
    Etcd Learning Notes
    Travis CI Build Continuous Integration
    Markdown Learning Notes
    SPRING MICROSERVICES IN ACTION
    Java Interview Questions Summary
    Node.js Learning Notes
    Apache Thrift Learning Notes
  • 原文地址:https://www.cnblogs.com/TheoryDance/p/4923801.html
Copyright © 2011-2022 走看看