Кластеризация в кварце выполняется с использованием базы данных, поэтому, если ваше хранилище заданий - JdbcJobStore, произойдет кластеризация.
Только планировщик с тем же именем расписания и с другим именем экземпляра будет участвовать и формировать кластер.
1 Поток ClusterManager будет использоваться для управления кластером. Этот поток гарантирует, что время последней проверки обновляется с заданным интервалом. Если в этом заданном интервале есть какое-либо несоответствие, экземпляр считается неработоспособным.
2 Кварц использует стандартный locksemaphore для кластеризации на уровне базы данных экземпляра кварца
StdRowLockSemaphore
В этом классе кварц использует пессимистическую блокировку строки, используя
select * from {}_Lock for update
Если выпроверьте, что класс JobStoreSupport после завершения триггера, запускающего блокировку строки, будет снят после завершения транзакции.Таким образом, если два экземпляра планировщика завершатся для одного и того же триггера, то только один сможет преуспеть.
Надеюсь, это поможет вам соединить точки.