java Quartz任务调度器

1、quarz对java1.5实现的简单调度做了封装

/**
     * quartz对任务调度进了高度抽象: 1调度器;2任务;3触发器
     * Job接口(任务):定义需要调度的任务
     * JobDetail(任务实例):Job在创建时,不是直接接受一个job实例,而是接受一个job实现类, jobdetail实现了这一个角色
     * Trigger:触发器
     * Calendar:更仔细的触发器
     * Scheduler:Quartz运行容器,任务和触发器可以注册到容器中
     * ThreadPool:容器通过一个共享线程池,提高运行效率
     *
     * @param args
     */

2、简单实现

  

package java_source_codes_quartz;

import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleTrigger;
import org.quartz.impl.JobDetailImpl;
import org.quartz.impl.StdSchedulerFactory;
import org.quartz.impl.triggers.SimpleTriggerImpl;

public class SimpleTriggerRunner {
     public static void main(String[] args) throws SchedulerException {
         //创建一个jobdetail实例
        JobDetail jobDetail = new JobDetailImpl("job1_1","jgroup1", SimpleJob.class);
        //创建一个触发器实例
        //还有更详细的触发器:CronTrigger
        SimpleTrigger simpleTrigger = new SimpleTriggerImpl("tigger1_1", "tgroup1");
        
        
        SchedulerFactory schFactory = new StdSchedulerFactory();
        Scheduler scheduler = schFactory.getScheduler();
        scheduler.scheduleJob(jobDetail, simpleTrigger);
        scheduler.start();
        
    }

}
package java_source_codes_quartz;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class SimpleJob implements Job {

    public void execute(JobExecutionContext arg0) throws JobExecutionException {
        // TODO Auto-generated method stub
        System.out.println(arg0.getTrigger().getCalendarName());
        System.out.println(arg0.getJobRunTime());
        System.out.println(arg0.getFireInstanceId());
        System.out.println(arg0.getFireTime());
        System.out.println(arg0.getJobDetail());
        System.out.println(arg0.toString());
    }

}

   这是一个简单实现,大概知道用quartz怎么去实现一个调度,具体在实际环境中可以用spring的bean实例的初始化做一个lisenter监听时间。实现调度。spring也对quartz做了集成处理,但是本人觉得

   写代码不是写配置文件,不是配置文件能解决需要重复造轮子的工作,我一般不会用配置文件。

3、调度器的集群实现方案

     1、将调度事件放在一台独立的服务器上,不受集群环境影响

     2、实现quartz的集群调度解决方案

    

     

原文地址:https://www.cnblogs.com/kimobolo/p/7061155.html