Запланируйте задачу с интервалом, настроенным переменной среды.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Запланируйте задачу с интервалом, настроенным переменной среды.

Сообщение Anonymous »

Используя аннотацию @Scheduled, я могу настроить метод для запуска по расписанию, как показано ниже

Код: Выделить всё

@Component
public class DemoScheduledTask {
@Scheduled(fixedRate = 5000)
public void runEveryFiveSeconds(){
System.out.println("Running...");
}
}

Я также могу загрузить переменную среды в переменную Java, используя @Value, и она загрузится правильно

Код: Выделить всё

@Component
public class DemoScheduledTask {
@Value("${DEMO_TEST_VAR}")
int val;

@Scheduled(fixedRate = 5000)
public void runEveryFiveSeconds(){
System.out.println(val);
}
}
Я также могу использовать выражение cron из среды, используя @Scheduled(cron = "${DEMO_ENV_VAR}" и устанавливая DEMO_ENV_VAR

Код: Выделить всё

to something like
*/5 * * * * *`, что приводит к той же логике «каждые 5 секунд».
Моя цель — настроить запланированную задачу с фиксированным периодом на основе переменную env. Я не могу использовать @Scheduled(fixedRate = val), поскольку аргумент fixedRate должен быть постоянным выражением, и я не могу использовать @Scheduled(fixedRate = "${) DEMO_TEST_VAR}"), потому что она должна быть длинной, а не строкой.
Можно ли передать переменную в фиксированныйRate вот так?

Подробнее здесь: https://stackoverflow.com/questions/790 ... d-interval
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»