quartz框架(九)-JobRunShell

上篇博文,博主讲了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/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球