Я создаю механизм планировщика для микросервиса с архитектурой java Проект весенней загрузки. Я использую кварц с кластерным режимом. Я настроил bean-компонент schedulerFactory, bean-компонент jobFactory и bean-компонент triggerFactory для весны, чтобы я мог вводить их весной. Таким образом, весна создает все заводские бобы для меня при запуске. И поскольку кварц использует эти фабричные bean-компоненты (для создания bean-компонентов), в моих контекстах (для каждого узла) будет 6 bean-компонентов: schedulerFactoryBean, schedulerBean, jobFactoryBean, jobBean, triggerFactoryBean и factoryBean при запуске на каждом узле.
Я могу вводить эти бины в контроллер и манипулировать ими как, я даже могу создать новый планировщик, задание и триггеры.
Как я знаю, кварц только синхронизирует фабричные бины через базу данных (при запуске каждый узел создает в соответствующей таблице запись, которая говорит: «Эй, я здесь»).
Вот мой вопрос. Когда я хочу создать bean-компонент планировщика через конечную точку отдыха, я должен отправить один и тот же запрос каждому узлу. Что я хочу, чтобы кварц сделал так: я хочу отправить только один запрос только одному узлу, а другие узлы должны синхронизировать c свои собственные значения (поскольку у меня кластеризованная структура, узел-получатель будет случайным).
Мой второй вопрос: поскольку бины хранятся в куче, при каждом запуске мои созданные во время выполнения объекты сбрасываются. Я хочу, чтобы они были настойчивыми. Может ли кварц сделать это? В любом случае, я могу это сделать?
Заранее спасибо.