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

相关文章
|
7月前
|
SQL 分布式计算 DataWorks
dataworks常见问题之一直显示job RUNNING状态如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
111 4
|
存储 Java BI
XXL-JOB定时任务知识点和应用实例
XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。该处只是介绍xxl_job的一下基础知识和使用的实例,具体的安装调试请参照对应的最新的官方文档,中文开源地址:https://www.xuxueli.com/xxl-job
3619 0
|
7月前
|
资源调度 关系型数据库 数据库
实时计算 Flink版产品使用合集之flink-cdc.sh xx.yaml提交到yarn 发现没有启动task manager的,怎么处理
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
4月前
|
分布式数据库 流计算 Docker
实时计算 Flink版操作报错合集之在Docker上启动JobManager(JM)时遇到报错,,该怎么处理
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
6月前
|
SQL 资源调度 数据处理
实时计算 Flink版产品使用问题之在DolphinScheduler调度Flink批作业时,遇到作业提交后状态立即变为成功,但实际上作业还在后台运行的情况,如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
7月前
|
消息中间件 SQL 关系型数据库
实时计算 Flink版操作报错合集之启动了一段时间后报错:The heartbeat of JobManager with id ace2db93308ae07b4e577b321c8b7e96 timed out.如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
254 5
|
6月前
|
资源调度 分布式计算 Oracle
实时计算 Flink版操作报错合集之flink on yarn job manager 可以启动, 但不给分配slot ,是什么原因
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
183 0
|
存储 算法 安全
定时任务之elastic-job概述
定时任务之elastic-job概述
399 0
|
运维 算法 Java