Привет, ребята. Есть вопрос. Допустим, я реализовал метод с аннотацией
@Scheduled(fixedDelay) для того, чтобы сделать подобие “демона”, который иногда что-то делает в фоне. Допустим этот метод ходит в БД и делает там какие-то тяжелые вещи, типа больших удалений и может выполняться больше, чем fixedDelay. Если я правильно понимаю, то независимо от времени работы метода, следующий его вызов произойдет строго через fixedDelay, что хорошо. Но вот что делать в случае, когда мое веб-приложение развернуто на 5 физически разных серверах? Шанс пересечения вызовов очень вероятен, поэтому вопрос в следующем: как реализовать блокировку, чтобы в один момент времени только один “демон“ мог выполнять работу? Делать это через какую-то внешнюю штуку, типа таблицы в БД с флагом is_demon_working?