码迷,mamicode.com
首页 > 其他好文 > 详细

QuartZ

时间:2019-09-05 00:46:49      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:dsc   nbsp   override   tno   完成   ESS   hello   实例化   sch   

        JobDataMap jobDataMap = context.getJobDetail().getJobDataMap();
        // 从JobDetail中获取JobDataMap的数据
        String jobDataMessage = jobDataMap.getString("message");
        System.out.println("任务数据的参数值:" + jobDataMessage);
        // 获取Trigger对象中获取JobDataMap的数据
        JobDataMap jobDataMap2 = context.getTrigger().getJobDataMap();
        String triggerDataMessage = jobDataMap2.getString("message");
        System.out.println("触发器数据的参数值:" + triggerDataMessage);
        //获取trigger的内容
        TriggerKey triggerKey=context.getTrigger().getKey();
        System.out.println("触发器名称:"+triggerKey.getName()+";触发器组:"+triggerKey.getGroup());
        
        System.out.println("****************");
        
        //获取其他内容
        System.out.println("当前任务执行时间:"+sdf.format(context.getFireTime()));
        System.out.println("下一次任务执行时间:"+sdf.format(context.getNextFireTime()));

 

技术图片技术图片

技术图片 技术图片

 官网:www.quartz-scheduler.org

技术图片

 

 

 技术图片

 

 

 组件模式:最终要的三部分:日任务job,触发器trigger,调度器schedule

 

 

 

技术图片

所有的任务调度都要通过execute完成

技术图片

 

 

 技术图片

 

 

 技术图片

 

 

 入门案例:

public class HelloJob implements Job {

    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
        // 输出当前时间
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String dataString = sdf.format(date);
        // 工作内容
        System.out.println("正在进行数据库的备份工作,备份数据库的时间是:" + dataString);
    }

}
public class HelloScheduleDemo {

    public static void main(String[] args) throws Exception {
        // 1.调度器(Scheduler) ,从工厂中获取调度的实例(默认:实例化)
        Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
        // 2.任务实例
        JobDetail jobDetail = JobBuilder.newJob(HelloJob.class).withIdentity("job1", "group1") // 参数1:任务的名称;参数2:任务组的名称
                .build();
        // 3.触发器
        SimpleTrigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger", "group1")// 参数1:触发器名称;参数2:触发器组的名称
                .startNow()// 马上启动触发器
                .withSchedule(SimpleScheduleBuilder.simpleSchedule().repeatSecondlyForever(5)).build();

        // 让调度器关联任务和触发器,保证按照触发器定义的条件执行任务
        scheduler.scheduleJob(jobDetail, trigger);
        scheduler.start();
    }

}

技术图片

 

 

 

public class HelloScheduleDemo {

    public static void main(String[] args) throws Exception {
        // 1.调度器(Scheduler) ,从工厂中获取调度的实例(默认:实例化)
        Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
        // 2.任务实例
        JobDetail jobDetail = JobBuilder.newJob(HelloJob.class).withIdentity("job1", "group1") // 参数1:任务的名称;参数2:任务组的名称
                .build();
        System.out.println("名称:" + jobDetail.getKey().getName());
        System.out.println("组的名称:" + jobDetail.getKey().getGroup());
        System.out.println("任务类" + jobDetail.getJobClass().getName());
        // 3.触发器
        SimpleTrigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger", "group1")// 参数1:触发器名称;参数2:触发器组的名称
                .startNow()// 马上启动触发器
                .withSchedule(SimpleScheduleBuilder.simpleSchedule().repeatSecondlyForever(5)).build();

        // 让调度器关联任务和触发器,保证按照触发器定义的条件执行任务
        scheduler.scheduleJob(jobDetail, trigger);
        scheduler.start();
    }

}

输出:

名称:job1
组的名称:group1
任务类com.quartz.HelloJob
 INFO [main] - Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED started.
正在进行数据库的备份工作,备份数据库的时间是:2019-09-04 23:06:49
正在进行数据库的备份工作,备份数据库的时间是:2019-09-04 23:06:54
正在进行数据库的备份工作,备份数据库的时间是:2019-09-04 23:06:59
正在进行数据库的备份工作,备份数据库的时间是:2019-09-04 23:07:04
正在进行数据库的备份工作,备份数据库的时间是:2019-09-04 23:07:09
正在进行数据库的备份工作,备份数据库的时间是:2019-09-04 23:07:14

技术图片

 

 

 技术图片

 

HelloSchedulerDemo.java

 

 技术图片

 

HelloJob.java

 

 技术图片

 

 

 

 技术图片

 

 

 技术图片

 

 

 技术图片

 

 

 如果想要获取job的数据,key不能设置和trigger一样

 

QuartZ

标签:dsc   nbsp   override   tno   完成   ESS   hello   实例化   sch   

原文地址:https://www.cnblogs.com/hk-zsg/p/11462623.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!