Elastic Job进阶--作业是如何被立即触发的

简介: Elastic Job进阶--作业是如何被立即触发的

在运维平台中,通常作业执行失败或者想要再次执行作业的时候,会去点击 ‘触发’按钮

微信截图_20230530134900.png

之后就可以看到作业被成功重新触发执行,那么触发按钮是怎么做到让作业立即出发执行的呢,接下来带你一步步探索!

点击触发按钮时,发起的http请求如图所示

微信截图_20230530134938.png

由于我是通过源码启动的运维平台,所以可以很方便的进行debug调试,通过源码发现,进入的是JobOperationRestfulApi##triggerJob()方法

微信截图_20230530135004.png

接着进入triggerJob方法,可以发现regCenter.getChildrenKeys(jobNodePath.getInstancesNodePath())是取出当前作业下所有的实例节点,当前只有一台,就是我的本机

微信截图_20230530135038.png

进入regCenter.persist方法,发现就是设置内容TRIGGER到 zookeeper 中节点/demoSimpleSpringJob/instances/192.168.99.1@-@18552

微信截图_20230530135107.png

为了演示效果,我除了通过运维平台点击触发立即执行任务,还通过手动修改注册中心作业信息立即执行, 在 zookeeper 客户端内执行 set /elastic-job-demo-quick-demo/demoSimpleSpringJob/instances/192.168.99.1@-@18552 TRIGGER 效果如下,当命令输入完成,应用控制台马上输出了作业工作时的日志。

微信截图_20230530135130.png

Elastic-job是如何立即执行的

在Elastic-job-core源码中, 有这么一个类TriggerListenerManager

微信截图_20230530135149.png

内部的start()方法会调用作业注册中心的监听器JobTriggerStatusJobListener去检查注册中心的数据节点,判断是否有TRIGGER的数据操作

微信截图_20230530135209.png

最后triggerJob()方法立刻启动相关作业

微信截图_20230530135227.png

相关文章
|
存储 Java BI
XXL-JOB定时任务知识点和应用实例
XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。该处只是介绍xxl_job的一下基础知识和使用的实例,具体的安装调试请参照对应的最新的官方文档,中文开源地址:https://www.xuxueli.com/xxl-job
2994 0
|
8天前
|
存储 监控 调度
【Flink】怎么提交的实时任务,有多少Job Manager?
【4月更文挑战第18天】【Flink】怎么提交的实时任务,有多少Job Manager?
|
2月前
|
SQL Prometheus Cloud Native
Flink启动问题之job启动失败如何解决
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。本合集提供有关Apache Flink相关技术、使用技巧和最佳实践的资源。
|
2月前
|
SQL 分布式数据库 Apache
Flink问题之实现state定时输出如何解决
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。本合集提供有关Apache Flink相关技术、使用技巧和最佳实践的资源。
32 0
|
9月前
|
调度
xxl-job 在业务代码中添加任务
看官方文档里面介绍的添加任务的方法都是在调度器的管理页面手动添加任务,但是现在我的需求是在业务代码里面用代码添加任务
|
11月前
|
存储 算法 安全
定时任务之elastic-job概述
定时任务之elastic-job概述
339 0
|
运维 算法 Java
|
编解码 运维 Shell
ASK 运行Job 任务| 学习笔记
快速学习 ASK 运行Job 任务
116 0
ASK 运行Job 任务| 学习笔记
|
存储 分布式计算 安全
Job 作业的使用--免密执行 | 学习笔记
快速学习 Job 作业的使用--免密执行
77 0
Job 作业的使用--免密执行 | 学习笔记
|
分布式计算 关系型数据库 MySQL
Job 作业的使用--创建、查看、执行、删除 | 学习笔记
快速学习 Job 作业的使用--创建、查看、执行、删除
287 0
Job 作业的使用--创建、查看、执行、删除 | 学习笔记