上篇博文,博主讲了Listener相关的内容。本篇博文,博主将要详细介绍一下JobRunShell的功能。简单的来说,JobRunShell就是Job实例运行时所在的环境,也就是说在JobRunShell中调用Job接口的execute方法。
在讲解JobRunShell之前,我们先了解或者加强一下Runnable接口的相关知识。在java编程中,创建Thread一般有三种方式。第一种是定义一个类去继承Thread类,并重写run方法。第二种是在创建Thread的时候,传入对应Runnable方法的实现。第二种是在创建Thread的时候,传入对应FutureTask,FutureTask中含有Callable接口的引用。因此,我们知道需要在线程中运行的对象可以实现Runnable方法。
并且博主的WorkThread博文中就介绍了工作者相关的内容,它会接收ThreadPool线程池给它投递的Runnable实体,因此查看JobRunShell的源码可知,它就是那个被投递的实例对象。
通过查看源码可知,JobRunShell具有几个重要的方法,方法如下所示:
//初始化方法
void initialize(QuartzScheduler sched)
throws SchedulerException
//实现了Runnable的接口
void run();
//模板方法,可由子类重写
void begin();
//模板方法,可由子类重写
void complete();
initialize是JobRunShell的初始化方法。不知道细心的小伙伴有没有方法,对于一些比较重要的对象而言,它都会有initialize方法。spring容器中的@bean注解就可以对应bean的initMethod方法。
该方法逻辑如下:
run方法在线程运行的时候被调用,它重写之后的方法逻辑如下:
Original: https://www.cnblogs.com/chenhaoblog/p/16014801.html
Author: 幕友皎敖奔乾
Title: quartz框架(九)-JobRunShell
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/711886/
转载文章受原作者版权保护。转载请注明原作者出处!