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秒执行一次

      

      

  • 相关阅读:
    day1-python简介+安装
    dgango中admin下添加搜索功能
    调用zabbix 分组api
    python 调用zabbix api实现查询主机信息,输出所有主机ip
    python实现用户登录界面
    怎样过滤跨站恶意脚本攻击(XSS)
    java服务安装(一):使用java service wrapper及maven打zip包
    详解Maven项目利用java service wrapper将Java程序生成Windows服务
    使用tomcat7-maven-plugin部署Web项目
    常用Maven插件介绍
  • 原文地址:https://www.cnblogs.com/goxcheer/p/9284211.html
Copyright © 2011-2022 走看看