繁体   English   中英

某些方法完成后如何启动/停止@Scheduled 任务

[英]How to start/stop @Scheduled task after certain method finishes

我有一个计划任务,它在应用程序上下文加载并永远运行直到程序结束时开始工作。

我想节省一些资源并仅在需要时运行计划任务。

这是我想象它应该如何工作的抽象代码。

@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");
        }
}

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

一个非常简单的方法是添加一个 boolean 开关:

@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");
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM