Я пытаюсь остановить задание запуска по расписанию, чтобы иметь возможность отдавать предпочтение другим методам по сравнению с запланированным (планировщик должен запускаться только тогда, когда никто другой не делает что-то), этот код уже работает, но как выможно увидеть, что требуется несколько ifs, я ищу способ их избежать, например, остановив activityChecker()
, когда активность меняется на true, это означает, что нужно остановить текущий процесс, но метод schedul по-прежнему вызывается каждые 45 секунд.
public void doSomething(){
activity = true;
//code
}
public void doSomethingElse(){
activity = true;
//code
}
@Scheduled(fixedRate = 45000)
private void activityChecker() {
if (!activity) {
saveUncompleteData();
}
if (!activity) {
for (String data : list){
//do something
if (activity) {
break;
}
}
}
if (!activity) {
saveList(list);
}
if (!activity) {
saveCompleteData();
}
activity = false;
}