Выдача задания кварцевого планировщика в кластерной среде
У меня есть кластер с двумя узлами, который подключен к одной базе данных, и запланированное задание, которое запускается планировщиком кварца каждые 10 минут. В кварц.свойства org.quartz.jobStore.isClustered=true
установлено.
Меня интересует, будет ли планировщик выдавать задание для того же узла до тех пор, пока он не будет доступен через каждые 10 минут, или он использует какой-то алгоритм для определения того, какой узел будет выполнять задание.
Я ничего не нашел в документации ( http://www.quartz-scheduler.org/documentation/quartz-2.x/configuration/ConfigJDBCJobStoreClustering.html).
Благодарю вас.
1 ответ
Я нашел это в учебниках по кварцу:
Только один узел будет запускать работу для каждого увольнения. Под этим я подразумеваю, что если задание имеет повторяющийся триггер, который заставляет его срабатывать каждые 10 секунд, то в 12:00:00 задание будет запускать ровно один узел, а в 12:00:10 - только один узел. задание и т. д. Это не обязательно будет один и тот же узел каждый раз - более или менее будет случайным, какой узел его запускает. Механизм распределения нагрузки почти случайный для планировщиков занятости (много триггеров), но предпочитает тот же самый узел, который только что был активен для планировщиков без занятости (например, один или два триггера).
http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/tutorial-lesson-11.html