我即将实现一个JSR 352 BatchJob,它应该在域模式下在Wildfly上运行,在单独的机器上有两个节点。
通过 JobOperator 界面在每个节点上使用相同的 Jdbc JobRepository 是否安全,或者可能存在冲突?
我想确保一个作业一次只能运行一次,而不是在节点上并行运行。
简短的 anser 是的,使用相同的 jdbc JobRepository 是安全的。
作业执行由应用程序启动。因此,作业是否一次只运行一次取决于应用程序启动作业的方式。 如果应用程序在以前的作业执行仍在运行时继续启动此作业,则某些请求将负载平衡到另一个节点,并且将在该节点中启动新的作业执行。