java—如何在某些方法完成后启动/停止@scheduled task

eiee3dmh  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(426)

我有一个计划任务,当应用程序上下文加载时开始工作,并一直运行到程序结束。
我想节省一些资源,只在需要时运行计划任务。
下面是抽象代码,我想它应该如何工作。

@EnableScheduling    
public class Scheduling {

        @Scheduled(fixedRate = 1000)
        public void scheduledTask() {
           log.info("scheduled task has been started");
        }

        public void triggerStart() {
           log.info("after this @Scheduled task will start working");
        }

        public void triggerFinish() {
           log.info("after this @Scheduled task will stop working");
        }
}

我很好奇有没有可能达到这样的结果?

sqxo8psd

sqxo8psd1#

一种非常简单的方法是添加布尔开关:

@Scheduled(fixedRate = 1000)
public void scheduledTask() {
   if (enabled) {
       log.info("scheduled task has been started");
   }
}

public void triggerStart() {
   enabled = true;
   log.info("after this @Scheduled task will start working");
}

public void triggerFinish() {
   enabled = false;
   log.info("after this @Scheduled task will stop working");
}

相关问题