`
v若离v
  • 浏览: 12920 次
社区版块
存档分类
最新评论

对Quartz的简单封装

    博客分类:
  • Java
阅读更多
  1. 前言

    Quartz是当下使用最多的作业调度框架,它提供了巨大的灵活性而不牺牲简单,你能够用它来为执行一个作业而创建简单的或复杂的调度
  2. 封装目的

    简单的封装使Quartz更加好用,使调度本身与业务分离,耦合程度更低,使编码人员只需要关注自己的业务实现而不用关注调度本身。
    由于定时调度实现的具体业务逻辑未知,比如同步人员或组织,报表统计等,不可预知的资源消耗对性能的影响及跑挂的风险,为了不影响主程序,推荐单独一个工程独立运行
  3. 实现效果

    对原有的Job接口进行了再一次封装,添加了新的接口IJob,实现用最少的代码实现作业的配置,系统的监听会随着服务一起启动,自动扫描到这个类,自动根据配置信息,生成作业并自动调度,代码如下:
    package job;
    import java.util.Date;
    import org.quartz.JobExecutionContext;
    import org.quartz.JobExecutionException;
    import coreJob.IJob;
    import coreJob.JobInfo;
    /**
     * 调度任务简要示例
     * @author Ruoli
     * 2015/07/11
     */
    public class MyJob implements IJob {
    	public JobInfo setJobInfo() {
    		JobInfo job=new JobInfo();
    		job.setJobGroup("MyJobGroup");//设置任务分组
    		job.setJobName("自定义同步调度");//设置任务名称
    		job.setStartTime(new Date()); //设置任务开始时间
    		job.setTriggerType(1);//设置任务执行计划
    		                      //1:每分钟执行一次,
    		                      //2:每小时执行一次,
    		                      //3:每天执行一次,
    		                      //0:使用cron表达式执行,使用此项时cron表达式必填。
    		//job.setCron("0 0/5 14 * * ?");s
    		//job.setCronDescription("在每天下午2点到下午2:55期间的每5分钟触发");
    		return job; 
    	}
    	public void execute(JobExecutionContext arg0) throws JobExecutionException {
    		System.out.println(System.currentTimeMillis());
    		
    	}
    }
     

  4. 任务监控

    为了更好的监控查看已有的作业,并对作业进行有效的控制,比如暂停,恢复,立即执行等,实现了任务监控管理功能,如下图:
    任务运行状态
  5. 下载代码

    提供源码下载
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics