在运维平台中,通常作业执行失败或者想要再次执行作业的时候,会去点击 ‘触发’按钮
之后就可以看到作业被成功重新触发执行,那么触发按钮是怎么做到让作业立即出发执行的呢,接下来带你一步步探索!
点击触发按钮时,发起的http请求如图所示
由于我是通过源码启动的运维平台,所以可以很方便的进行debug调试,通过源码发现,进入的是JobOperationRestfulApi##triggerJob()方法
接着进入triggerJob方法,可以发现regCenter.getChildrenKeys(jobNodePath.getInstancesNodePath())是取出当前作业下所有的实例节点,当前只有一台,就是我的本机
进入regCenter.persist方法,发现就是设置内容TRIGGER到 zookeeper 中节点/demoSimpleSpringJob/instances/192.168.99.1@-@18552上

本文探讨了Elastic Job如何实现作业的立即触发。当点击运维平台的'触发'按钮时,通过HTTP请求触发作业执行。源码分析显示,该过程涉及Zookeeper节点的更新,将TRIGGER写入作业实例节点。同时,介绍了通过直接修改Zookeeper数据来触发作业执行的方法,作业监听器会检测到变化并启动相关作业。
最低0.47元/天 解锁文章
2453

被折叠的 条评论
为什么被折叠?



