春季停止计划中的任务正在进行

时间:2019-05-26 02:25:08

标签: java spring scheduled-tasks

我正在尝试停止计划运行任务,以便能够优先于计划的方法使用其他方法(计划中的一个方法是在没有其他人正在做某事时才运行),此代码已经有效,但是随着您可以看到它需要多个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;
    }

0 个答案:

没有答案