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