#spring-boot #scheduler
Вопрос:
Вот подробности,
У меня есть два планировщика с аннотацией @scheduled. Допустим, A amp; B. Планировщик «A» выполняет некоторую работу и устанавливает значение в статической переменной с помощью установщика. Я хочу включить планировщик «B», только для статической переменной установлено значение true.
Я знаю, что одним из решений является проверка/проверка флага статической переменной в планировщике «B» и пропуск дальнейшего процесса, но планировщик проверяет каждый раз на основе указанного интервала (т. Е. фиксированной задержки).
Я хочу полностью отключить планировщик на основе статической переменной во время выполнения.
PS : Я вручную установил временную задержку между планировщиками «A» и «B». Итак, сначала «А», а затем «Б».
например:
Initialize.class
Configuration EnableScheduling public class Initialize { public A a{ return new A(); } public B b{ return new B(); } }
A.class
public class A{ Scheduled(fixedDelayString = "sometime specified") public void aProcessor(){ // Following code sets the value of static variable like staticClass.setAppVariable(true); } }
B.class
public class B{ Scheduled(fixedDelayString = "sometime specified") public void bProcessor(){ // some process } }
static.class
public class staticClass implements Serializable{ private static volatile boolean appVariable = false; public static boolean getAppVariable() { return appVariable; } public static void setAppVariable(boolean appVariable) { staticClass.appVariable = appVariable; } }
Но мне нужно инициализировать класс/планировщик «B» на основе статической переменной, если это правда.
Какая-нибудь помощь?
Комментарии:
1. Вы можете запустить/остановить планировщик программно
2. Вы могли бы использовать таймер
3. @SimonMartinelli Не могли бы вы, пожалуйста, сообщить мне подробности или какой-либо фрагмент?
4. @тайна Как использовать таймер? потому что статическая переменная устанавливается моим другим планировщиком.
5. @SandeepKumarManda, пожалуйста, покажите свой сегмент кода, иначе его трудно понять