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)

大家都在看

  • 查看核数 内存 磁盘

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    技术杂谈 2023年5月31日
    072
  • Java基础|Stream流原理与用法总结

    Stream简化元素计算; 一、接口设计 从Java1.8开始提出了Stream流的概念,侧重对于源数据计算能力的封装,并且支持序列与并行两种操作方式;依旧先看核心接口的设计: B…

    技术杂谈 2023年7月24日
    060
  • Newtonsoft.Json 用法

    忽略某些属性 默认值的处理 空值的处理 支持非公共成员 日期处理 自定义序列化的字段名称 动态决定属性是否序列化 枚举值的自定义格式化问题 自定义类型转换 全局序列化设置 1.忽略…

    技术杂谈 2023年6月1日
    081
  • protoc将proto文件生成GO代码

    protoc将proto文件生成GO代码 protoc将proto文件生成GO代码 在WINDOWS终端里面输入命令:protoc –gofast_out . unit…

    技术杂谈 2023年5月31日
    070
  • Python 获取字典中的第一个键

    提供两种方法: 使用 list 将字典的 key 转换成列表,然后取第一个元素 [0]。如果想要最后一个 key 的话,就取最后一个元素 [-1]。 >>> my…

    技术杂谈 2023年6月21日
    079
  • 快速排序?

    <span>function <span>quickSort (arr) {<br> <span>if (arr.length &l…

    技术杂谈 2023年5月31日
    084
  • 对开源框架跃跃欲试,却在写的时候犯了难?

    本文涉及的开源框架,仅包含前端、后端和客户端三个方面 开源的世界里到处都是”奇珍异宝”,那些琳琅满目的开源项目,它们各有特色有的是简单清爽的小工具,有的是令…

    技术杂谈 2023年6月1日
    089
  • Go Programming Language

    【 Go Programming Language】 1、go run %filename 可以直接编译并运行一个文件,期间不会产生临时文件。例如 main.go。 go run …

    技术杂谈 2023年5月31日
    0108
  • Linux基础学习(一)

    Linux发行版 以软件包格式:rpm:Red Hat Enterprise LinuxCentOSopenSUSEFedoradeb:DebianUbuntulinux mint…

    技术杂谈 2023年6月21日
    076
  • MySql主要性能指标说明

    在项目当中数据库一般都会成为主要的性能与负载瓶颈,那么针对数据库各项性能指标的监控与对应的优化是开发与运维人员需要面对的主要工作,而且这部分的工作会贯穿项目从开发到运行的整个周期里…

    技术杂谈 2023年7月25日
    052
  • Windows权限维持

    Windows权限维持 来源 https://cloud.tencent.com/developer/article/1850726 0x01 前言 红队人员拿到一台主机权限后首先…

    技术杂谈 2023年5月31日
    0109
  • Flink window

    窗口计算 我们经常需要在一个时间窗口维度上对数据进行聚合,窗口是流处理应用中经常需要解决的问题。Flink的窗口算子为我们提供了方便易用的API,我们可以将数据流切分成一个个窗口,…

    技术杂谈 2023年7月10日
    081
  • docker search和pull超时

    练习时用docker查找镜像或者pull镜像时总是超时,折腾一圈发现是 时钟同步的问题,实验环境的时间偏差太大,重新同步一次就ok了。 #ntpdate cn.pool.ntp.o…

    技术杂谈 2023年7月10日
    058
  • Arrays.sort(arr)是什么排序

    当数组长度大于286时 此时回到那段很长很长的代码段,在判断小于286的长度数组之后,从注解中: // Check if the array is nearly sorted 这里…

    技术杂谈 2023年7月24日
    057
  • 三大运营商手机号段发布时间汇总

    整理汇总一下以备不时之需 移动 号段 发布时间 备注 134 2014 年 135 2000 年 136 2000 年 137 1999 年 138 1999 年 139 1995…

    技术杂谈 2023年5月31日
    0479
  • 万字长文,带你轻松学习 Spark

    大家好,我是大D。 今天给大家分享一篇 Spark 核心知识点的梳理,对知识点的讲解秉承着能用图解的就不照本宣科地陈述,力求精简、通俗易懂。希望能为新手的入门学习扫清障碍,从基础概…

    技术杂谈 2023年7月25日
    076
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球