1.项目结构说明
整个saturn分布式任务调度涉及到三大块:
(1).控制中心;(发版跟这个没有关系,一次配置好了启动了,后面就不用管了)
(2).执行器;(发版会执行 restart.sh 脚本文件,就是一个执行器重启的过程)
(3).应用系统;(也就是我们的jobApplication,即SpringBoot工程)
说明:执行器与应用系统之间的关系是,执行器启动后会扫描到我们的应用系统那个jar包,只有作业调度被执行时,执行器会创建一个新的 ClassLoader 通过反射的方式实例化我们的应用。
也就是说,我们的业务代码和执行器代码的运行是在两套不同的ClassLoader里面执行的。
【注意:发版后只是执行器被重启了,我们的应用并没被重启,而是被关闭了;我们的作业调度到达时,Spring容器重新被初始化,这个过程会稍微耗时】
2.注意事项
一般情况下,可能都涉及到查看相关日志来排错。
1.如果发版报错根据报错情况,可能的情况及解决办法
(1).控制中心服务器与执行器服务器的时间差超过了 60s ;解决方案:调整服务器时间,保持几个服务器之间的时差小于60s;
(2).权限被拒绝;解决方案:确保我们发版用的用户有权限执行发版用到的相关命令(可以请运维人员辅助解决);
关于这个点位,特别说明:我们的项目发布是用