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)

大家都在看

  • Python Json使用

    Python Json使用 本篇主要介绍一下 python 中 json的使用 如何把 dict转成json 、object 转成json 、以及json转成对象 等等。。 jso…

    技术杂谈 2023年7月11日
    081
  • 【源码笔记】ThreadPoolExecutor#addWorker

    /** * Checks if a new worker can be added with respect to current * pool state and the giv…

    技术杂谈 2023年7月24日
    090
  • java面试题总结

    1,集合类面试题 arraylist和linkedlist的区别?底层实现?手写实现?线程安全吗以及原因? hashmap的底层实现?put()执行过程?put null时的执行过…

    技术杂谈 2023年7月24日
    059
  • Pycharm k火秘诀插件

    Pycharm2020最新永久激活码插件(支持Windows),100%永久激活 用到pycharm工具发现没用多久时间又过期了,在网上有看到很多朋友都遇到同样的情况,于是找到了一…

    技术杂谈 2023年6月21日
    0148
  • MySQL性能优化的5个维度

    面试官如果问你:你会从哪些维度进行MySQL性能优化?你会怎么回答? 所谓的性能优化,一般针对的是MySQL查询的优化。既然是优化查询,我们自然要先知道查询操作要经过哪些环节,然后…

    技术杂谈 2023年7月24日
    068
  • es index template

    建一个索引的步骤 1:先创建轮滚策略 2:创建模板 3:创建索引 创建轮滚策略 创建索引模板 根据模板创建索引 创建索引后,如果要观察轮滚效果,可以手动滚动 修改mapping后数…

    技术杂谈 2023年7月10日
    076
  • 监控平台SkyWalking9入门实践

    简便快速的完成对分布式系统的监控; 一、业务背景 微服务作为当前系统架构的主流选型,虽然可以应对复杂的业务场景,但是随着业务扩展,微服务架构本身的复杂度也会膨胀,对于一些核心的业务…

    技术杂谈 2023年7月23日
    084
  • 一个诡异的MySQL查询超时问题,居然隐藏着存在了两年的BUG

    这一周线上碰到一个诡异的BUG。 线上有个定时任务,这个任务需要查询一个表几天范围内的一些数据做一些处理,每隔十分钟执行一次,直至成功。 通过日志发现,从凌晨5:26分开始到5:5…

    技术杂谈 2023年7月25日
    0118
  • Centos静默安装Oracle11G

    环境准备 Oracle 11gR2 64位 Linux版安装包 linux.x64_11gR2_database_1of2.ziplinux.x64_11gR2_database_…

    技术杂谈 2023年6月21日
    0105
  • 可视化全链路日志追踪

    可视化全链路日志追踪 https://mp.weixin.qq.com/s/Er4-X8q5MKZZUgAUHyeLwA 收录于合集 后台29 个 大众点评3 个 日志1 个 可视…

    技术杂谈 2023年5月31日
    0113
  • 李卓豪:网易数帆数据中台逻辑数据湖的实践

    导读: 本文将介绍过去15年中,网易大数据团队在应对不断涌现的新需求、新痛点的过程中,逐渐形成的一套逻辑数据湖落地方法。内容分为五部分: 关于网易数帆 为什么做逻辑数据湖 怎么做逻…

    技术杂谈 2023年7月25日
    0115
  • 分层架构之DDD分层

    DDD(Domain Driven Design,领域驱动设计)作为一种软件开发方法,它可以帮助我们设计高质量的软件模型。在正确实现的情况下,我们通过DDD完成的设计恰恰就是软件的…

    技术杂谈 2023年5月31日
    0114
  • Netflix Conductor microservices orchestration engine.

    ExecutionLockServiceWorkflowReconciler会定期尝试decide所有正在运行中的流程用于超时判断、维护流程一致性。但是流程本身正常执行也会触发de…

    技术杂谈 2023年6月1日
    088
  • HTTP长连接和短链接代理与网关

    长连接和短链接 代理与网关 HTTP/)服务器端网关:网关与客户端使用HTTP协议通信,使用其他协议与服务端通信 (/HTTP)客户端网关:网关与客户端使用其他协议通信,使用HTT…

    技术杂谈 2023年7月24日
    071
  • 2.Add Two Numbers——LeetCode

    You are given two non-empty linked lists representing two non-negative integers. The digit…

    技术杂谈 2023年6月21日
    074
  • 多重背包问题的单调队列优化

    多重背包问题的单调队列优化 温馨提示:先吃甜点,再进入正餐食用更佳噢~ 0-1背包问题(餐前甜点) https://www.acwing.com/problem/content/2…

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