我正在尝试停止计划运行任务,以便能够优先于计划的方法使用其他方法(计划中的一个方法是在没有其他人正在做某事时才运行),此代码已经有效,但是随着您可以看到它需要多个if,我正在寻找一种避免它们的方法,例如,当activity更改为true时,通过停止activityChecker()
,这是停止当前进程的前提,但是保持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;
}