Я использую аннотацию @Scheduled
из фреймворка Spring для вызова метода. Но у меня есть несколько узлов в моей настройке, и я не хочу, чтобы все они запускались точно в одно и то же время. Поэтому я хотел бы установить случайное значение для начальной задержки, чтобы компенсировать их друг от друга.Spring @Scheduled аннотация случайная задержка
import org.springframework.scheduling.annotation.Scheduled;
@Scheduled(fixedRate = 600000, initialDelay = <random number between 0 and 10 minutes>)
К сожалению, мне разрешено использовать постоянное выражение здесь. Есть ли другой способ обойти это? Я думал об использовании языка выражения Spring.
Не должны ли команды SpEl быть в строках? Я только видел, что они используются в строковых значениях. Это, к сожалению, ожидает большой ценности. Я пробовал его без кавычек и имел нерешенные проблемы компиляции. Я попробовал его как строку, и планировщик никогда не вызывался, но никаких сообщений об ошибках. – masstroy
Вы заметили использование 'initialDelayString' вместо' initialDelay'? Последний занимает длинную, первую строку, которая может быть выражением. –
Пример не совсем подходит. Во-первых, это должно быть указано или компилятор будет жаловаться. Но даже тогда все, что я получаю, равно null. Есть ли какая-то конфигурация, которую мне нужно сделать? – girgen