如何在某些方法完成后 start/stop @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");
}
}
我很好奇有没有可能达到这样的结果?
一个非常简单的方法是添加一个布尔开关:
@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");
}
我有一个计划任务,它在应用程序上下文加载时开始工作,并且 运行 一直持续到程序结束。
我想节省一些资源和 运行 仅在需要时执行计划任务。
这是我想象中的抽象代码。
@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");
}
}
我很好奇有没有可能达到这样的结果?
一个非常简单的方法是添加一个布尔开关:
@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");
}