zoukankan      html  css  js  c++  java
  • Quartz入门及简单实现

    Quartz简介

      Quartz是一个功能丰富的开源作业调度库,可以集成到几乎任何Java应用程序中 - 从最小的独立应用程序到最大的电子商务系统。Quartz可以用来创建执行数十,数百乃至数万个作业的简单或复杂的计划; 作业的任务被定义为标准的Java组件,它可以执行几乎任何你可能编程的任务。Quartz Scheduler包含许多企业级功能,例如支持JTA事务和集群。

      如果您的应用程序具有需要在特定时间内发生的任务,或者如果您的系统经常性维护作业,那么Quartz可能是您理想的解决方案。

    Quartz定时任务实现

      导入jar包(maven依赖)

    <dependency>
    	      <groupId>org.quartz-scheduler</groupId>
    	      <artifactId>quartz</artifactId>
    	      <version>2.2.1</version>
    	    </dependency>
    

      示例代码

        自定义一个任务类实现Quartz的Job接口,并重写execute()函数

                   

    package com.qgx.quartz.job;
    
    import org.quartz.Job;
    import org.quartz.JobExecutionContext;
    import org.quartz.JobExecutionException;
    
    public class MyJob implements Job{
    
        public void execute(JobExecutionContext arg0) throws JobExecutionException {
            System.err.println("Hello Quartz!");
            
        
        }
    
    }

        然后定义一个测试类,需要将定义相应的任务(JobDetial)触发器(trigger),并将其加到一个执行日程(Scheduler)中,启动日程。

      

    package com.qgx.quartz;
    
    import org.quartz.JobBuilder;
    import org.quartz.JobDetail;
    import org.quartz.Scheduler;
    import org.quartz.SimpleScheduleBuilder;
    import org.quartz.Trigger;
    import org.quartz.TriggerBuilder;
    import org.quartz.impl.StdSchedulerFactory;
    
    import com.qgx.quartz.job.MyJob;
    
    
    public class QuartzTest {
        
        public static void main(String[] args) throws Exception{
            
            JobDetail job = JobBuilder.newJob(MyJob.class)
                    .withIdentity("job1", "group1")
                    .build();
    
            // Trigger the job to run now, and then repeat every 5 seconds
            Trigger trigger = TriggerBuilder.newTrigger()
                    .withIdentity("trigger1", "group1")
                    .startNow()
                    .withSchedule(SimpleScheduleBuilder.simpleSchedule()
                            .withIntervalInSeconds(5)
                            .repeatForever())
                    .build();
    
            // Grab the Scheduler instance from the Factory
            Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
            // and start it off
            scheduler.start();
            // Tell quartz to schedule the job using our trigger
            scheduler.scheduleJob(job, trigger);
        }
    }

      执行结果:每5秒执行一次

      

      

  • 相关阅读:
    Ubuntu 12.04 gedit编辑器 中文乱码
    ubuntu设置vim语法高亮显示和自动缩进
    Linux学习小结(转)
    指向常量的指针和常量指针
    Android之EditText
    android之TextView
    Android存储机制之Preference
    android实现可拖动按钮
    用turtle画图
    torchvision里densenet代码分析
  • 原文地址:https://www.cnblogs.com/goxcheer/p/9284211.html
Copyright © 2011-2022 走看看