美文网首页
quartz 的监听器 -->监听job(JobListener

quartz 的监听器 -->监听job(JobListener

作者: 刘小刀tina | 来源:发表于2020-04-29 11:23 被阅读0次

@Slf4j
public class HelloJobListerner  implements Job {
    private SimpleDateFormat format;

    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        //输出时间
        Date date = new Date();
        SimpleDateFormat dateFormat = new SimpleDateFormat();
        String dataTime = dateFormat.format(date);
        log.info("当前系统时间为:"+dataTime);
    }

}

//创建一个类
class HelloJobListernerDemo{

    public static void main(String[] args) throws SchedulerException {
        //1 获取调度器
        Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
        //2 获取任务实例jobdetail
        JobDetail jobDetail = JobBuilder.newJob(HelloJobListerner.class)
                .withIdentity("job1", "group1")
                .build();
        //3 生成触发器
        SimpleTrigger trigger = TriggerBuilder.newTrigger()
                .withIdentity("trigger1", "group1")
                .startNow()
                .withSchedule(SimpleScheduleBuilder.
                        repeatSecondlyForever(5).//每5秒执行一次
                        withRepeatCount(0)) //循环执行3次
                .build();
        //4.关联任务和触发器 保证按照触发器定义的条件执行任务
        scheduler.scheduleJob(jobDetail,trigger);
        //创建并注册一个全局的Job Listerner
        //scheduler.getListenerManager().addJobListener(new MyJobListerner(), EverythingMatcher.allJobs());
        //创建并注册一个局部的Job Listerner
        scheduler.getListenerManager().addJobListener(new MyJobListerner(), KeyMatcher.keyEquals(JobKey.jobKey("job1", "group1")));

        //5.启动
         scheduler.start();

    }
}

//创建一个监听器
@Slf4j
class  MyJobListerner implements JobListener {

    //获取监听器的名称
    @Override
    public String getName() {
        String name = this.getClass().getSimpleName();
        log.info("监听器的名称为: "+name);
        return name;
    }

    @Override
    public void jobToBeExecuted(JobExecutionContext context) {
        String name = context.getJobDetail().getKey().getName(); //获取Job的name
        log.info("被监听的job的name是:"+name+"   Scheduler在JobDetail将要被执行时调用的方法");

    }

    @Override
    public void jobExecutionVetoed(JobExecutionContext context) {
        String name = context.getJobDetail().getKey().getName(); //获取Job的name
        log.info("Scheduler在JobDetail即将执行,但又被TriggerListerner否决时会调用的方法");
    }

    @Override
    public void jobWasExecuted(JobExecutionContext context, JobExecutionException e) {
        String name = context.getJobDetail().getKey().getName(); //获取Job的name
        log.info("Scheduler是在JobDetail被执行之后调用这个方法的");
    }
}



相关文章

  • quartz 的监听器 -->监听job(JobListener

  • Quartz的持久化、集群使用实例

    一、Quartz任务的持久化——JobStore 在前面的文章《Quartz并发、Misfire、监听器上手实例》...

  • Quartz中的任务动态管理实例

    前置文章:Quartz并发、Misfire、监听器上手实例Quartz的持久化、集群使用实例 在看过前面两篇文章的...

  • Quartz的使用demo

    使用类: Cons表达式: Spring中对Quartz的使用: web.xml中添加监听器,监听QuartzSt...

  • SpringBoot--监听器解析

    监听器模式 监听器模式有要素 事件 监听器 广播器 触发机制 系统监听器 监听器 ApplicationListe...

  • quartz的监听器listener

    一、scheduler(调度器)监听 二、job(任务)监听 三、trigger(触发器)监听 四、执行顺序、触发...

  • 监听器

    一、监听器定义 现实生活 -web监听器 二、web监听器应用 三、创建监听器 1、创建一个实现监听器接口的类。 ...

  • JavaEE_day23_Listener(监听器)

    一、监听器(Listener): 1.什么是监听器? 监听器就是监听某个对象的的状态变化的组件 监听器的相关概念:...

  • tomcat内存马Listener篇

    什么是监听器 监听器类型 java共有三种类型的监听器 ServletContext对象的监听器 它能够监听 Se...

  • JavaWeb - Listener

    监听器 实现一个监听器的接口. 编写一个监听器实现监听器的接口 web.xml 中注册监听器 看情况是否使用

网友评论

      本文标题:quartz 的监听器 -->监听job(JobListener

      本文链接:https://www.haomeiwen.com/subject/tdrgwhtx.html