• quantz入门和使用流程(转载)


    1、下载地址:http://quartz-scheduler.org/downloads/catalog

    http://quartz-scheduler.org/downloads/destination?name=quartz-2.2.1-distribution.tar.gz&bucket=tcdistributions&file=quartz-2.2.1-distribution.tar.gz

    2、quartz-2.1.5文件根文件夹中有非常多jar包,Quartz 最核心的包就是quartz-all-2.1.5.jar,假设须要用到其它Quartz 的其它特性。能够考虑将对应的包增加到classpath中,除此之外,Quartz 还依赖一些第三方的包,那些包都放在了lib文件夹下。将其也所有增加到classpath中

    3、在src下新建一个quartz.properties文件。该文件用来配置Quartz 的一些參数

    一个简单的实例:

    quartz.properties文件配置内容例如以下:

    Xml代码  收藏代码
    1. org.quartz.scheduler.instanceName: QuartzTest  
    2. org.quartz.threadPool.threadCount: 3  
    3. org.quartz.jobStore.class: org.quartz.simpl.RAMJobStore  

    log4j.properties配置内容例如以下:

    Xml代码  收藏代码
    1. log4j.rootLogger=INFO, stdout  
    2. log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
    3. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  
    4. log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n  

    QuartzTest.java

    Java代码  收藏代码
    1. package demo01;  
    2.   
    3. import org.quartz.JobBuilder;  
    4. import org.quartz.JobDetail;  
    5. import org.quartz.Scheduler;  
    6. import org.quartz.SchedulerException;  
    7. import org.quartz.SchedulerFactory;  
    8. import org.quartz.SimpleScheduleBuilder;  
    9. import org.quartz.Trigger;  
    10. import org.quartz.TriggerBuilder;  
    11. import org.quartz.TriggerKey;  
    12. import org.quartz.impl.StdSchedulerFactory;  
    13.   
    14. /** 
    15.  * 每隔2秒调用一次job 
    16.  * 功能:TODO 
    17.  * 类名:QuartzTest 
    18.  * 作者:smile 
    19.  * 时间:Aug 11, 2012:3:25:46 PM 
    20.  */  
    21. public class QuartzTest {  
    22.   
    23.     public static void main(String[] args) {  
    24.         new QuartzTest().run();  
    25.     }  
    26.   
    27.     public void run() {  
    28.         try {  
    29.               
    30.             //Scheduler instances are produced by a SchedulerFactory  
    31.             SchedulerFactory sf = new StdSchedulerFactory();  
    32.             Scheduler scheduler = sf.getScheduler();  
    33.   
    34.             //JobDetail Conveys the detail properties of a given Job instance. JobDetails are to be created/defined with JobBuilder.   
    35.             //JobBuilder无构造函数。所以仅仅能通过JobBuilder的静态方法newJob(Class<? extends Job> jobClass)生成JobBuilder实例  
    36.             //withIdentity(String name,String group)參数用来定义jobKey,假设不设置。也会自己主动生成一个独一无二的jobKey用来区分不同的job  
    37.             //build()方法 Produce the JobDetail instance defined by this JobBuilder.  
    38.             JobDetail job = JobBuilder.newJob(JobTest.class).withIdentity("job1""group1").build();  
    39.   
    40.             //use TriggerBuilder to instantiate an actual Trigger  
    41.             //withIdentity(String name,String group)參数用来定义TriggerKey,假设不设置,也会自己主动生成一个独一无二的TriggerKey用来区分不同的trigger  
    42.             Trigger trigger = TriggerBuilder.newTrigger().withIdentity(new TriggerKey("trigger1""group1")).startNow()  
    43.                             .withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(2).repeatForever())  
    44.                             .build();  
    45.   
    46.             // Tell quartz to schedule the job using our trigger  
    47.             scheduler.scheduleJob(job, trigger);  
    48.               
    49.             // Start up the scheduler  
    50.             scheduler.start();  
    51.               
    52.             //当前主线程睡眠2秒  
    53.             System.out.println(Thread.currentThread().getName());  
    54.             Thread.sleep(30*1000);  
    55.               
    56.             // shut down the scheduler  
    57.             scheduler.shutdown(true);  
    58.   
    59.         } catch (SchedulerException e) {  
    60.             e.printStackTrace();  
    61.         } catch (InterruptedException e) {  
    62.             e.printStackTrace();  
    63.         }   
    64.     }  
    65.   
    66. }  

    JobTest.java

    Java代码  收藏代码
    1. package demo01;  
    2.   
    3. import org.quartz.Job;  
    4. import org.quartz.JobExecutionContext;  
    5. import org.quartz.JobExecutionException;  
    6.   
    7. public class JobTest implements Job{  
    8.       
    9.     //Instances of Job must have a public no-argument constructor  
    10.     public JobTest(){  
    11.           
    12.     }  
    13.       
    14.     public void execute(JobExecutionContext arg0) throws JobExecutionException {  
    15.           
    16.         //看打印出的当前对象每次都不一样,就等于每次运行一次任务都新建一个job实例  
    17.         System.out.println("我的任务就是调用当前Job:"+this+"不断刷屏!!!");  
    18.     }  
    19.   
    20. }  

    控制台打印的结果:

    Java代码  收藏代码
    1. 2012-08-11 08:34:15,512 INFO [org.quartz.impl.StdSchedulerFactory] - Quartz scheduler 'QuartzTest' initialized from default resource file in Quartz package'quartz.properties'  
    2. 2012-08-11 08:34:15,512 INFO [org.quartz.impl.StdSchedulerFactory] - Quartz scheduler version: 2.1.5  
    3. 2012-08-11 08:34:15,527 INFO [org.quartz.core.QuartzScheduler] - Scheduler QuartzTest_$_NON_CLUSTERED started.  
    4. main  
    5. 我的任务就是调用当前Job:demo01.JobTest@1c672d0不断刷屏!!!  
    6. 我的任务就是调用当前Job:demo01.JobTest@1855af5不断刷屏!!!  
    7. 我的任务就是调用当前Job:demo01.JobTest@198dfaf不断刷屏!!!  
    8. 我的任务就是调用当前Job:demo01.JobTest@1858610不断刷屏!!!  
    9. 我的任务就是调用当前Job:demo01.JobTest@12498b5不断刷屏!!!  
    10. 我的任务就是调用当前Job:demo01.JobTest@1a5ab41不断刷屏!!!  
    11. 我的任务就是调用当前Job:demo01.JobTest@18e3e60不断刷屏!!!  
    12. 我的任务就是调用当前Job:demo01.JobTest@1a125f0不断刷屏!!!  
    13. 我的任务就是调用当前Job:demo01.JobTest@c1cd1f不断刷屏!!!  
    14. 我的任务就是调用当前Job:demo01.JobTest@181afa3不断刷屏!!!  
    15. 我的任务就是调用当前Job:demo01.JobTest@131f71a不断刷屏!!!  
    16. 我的任务就是调用当前Job:demo01.JobTest@15601ea不断刷屏!!!  
    17. 我的任务就是调用当前Job:demo01.JobTest@197d257不断刷屏!!!  
    18. 我的任务就是调用当前Job:demo01.JobTest@7259da不断刷屏!!!  
    19. 我的任务就是调用当前Job:demo01.JobTest@16930e2不断刷屏!!!  
    20. 我的任务就是调用当前Job:demo01.JobTest@1add2dd不断刷屏!!!  
    21. 2012-08-11 08:34:45,538 INFO [org.quartz.core.QuartzScheduler] - Scheduler QuartzTest_$_NON_CLUSTERED shutting down.  
    22. 2012-08-11 08:34:45,538 INFO [org.quartz.core.QuartzScheduler] - Scheduler QuartzTest_$_NON_CLUSTERED paused.  
    23. 2012-08-11 08:34:46,023 INFO [org.quartz.core.QuartzScheduler] - Scheduler QuartzTest_$_NON_CLUSTERED shutdown complete.  
  • 相关阅读:
    8.电影推荐
    一.Memcached企业服务
    7.学完linux系统运维到底可以做什么?
    svn+jenkins自动部署
    关于gitlab+jenkins自动部署代码的实现
    Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre
    php实现雪花算法(ID递增)
    php使用rdkafka进行消费
    Burp破解安装(1.7和2.0)
    在已有lnmp环境的基础上安装PHP7
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/7281285.html
Copyright © 2020-2023  润新知