场景:我有两个不同的模块(比如A和B)。 A部署在两台不同的机器上(比如A1和A2),B部署在两台不同的机器上(比如B1和B2),并且与A模块相关的任务被调度,并且所需的java类只与A(so A1和A2都有)。石英聚类问题
我正在使用spring framework quartz bean,并在模块在tomcat上启动时立即在所有机器上启动调度程序。
所有这些信息都存储在与石英相关的数据库表中。
最好的部分:在执行过程中/执行前,如果A1停机,幸运的是如果调度器找到A2空闲的,则该作业将在A2上执行。所有必需的类都出现在A2上,所以没问题。成功!
错误部分:执行期间/执行前,如果A1下降,如果调度程序发现B1和B2空闲,则作业将在其中任何一个上执行,但由于所需的类不在B1/B2上,因此i得到一个没有发现异常的类。失败!
查询:如何确保与模块A相关的作业仅在部署了A的计算机上运行,而不在部署B的计算机上运行。
在此先感谢!