我在我的项目中使用 java 计划。在我的项目中调用 rest api 后,我开始在我的程序中安排。同样,我用另一个 rest api 停止了这个计划。换句话说,我在运行时安排了创建、停止、运行等。我想将此代码从 java scheduled 转换为 spring schedule。当我查看代码示例时,我可以按时间开始安排。或者我可以根据我在application.properties中给的参数来启动它。然而,没有一个符合我的意愿。我的要求简单如下。if(condition) { startScheduled();} else { stopScheduled();}但我找不到这样的例子。你能帮帮我吗?
2 回答
慕姐4208626
TA贡献1852条经验 获得超7个赞
就我而言,我习惯于@Scheduled
安排一个较短的周期。CronSequenceGenerator
我们正在使用该计划在运行时检查 cron 。
胡说叔叔
TA贡献1804条经验 获得超8个赞
然后您需要确定计划任务的执行频率。为此,您将创建一个适合您需要的 CRON 表达式。
最后在任务中,只需检查您的条件并相应地执行代码。
这是一些示例代码:
@Component
public class ScheduledTask{
private static final Logger log = LoggerFactory.getLogger(ScheduledTask.class);
@Autowired
SomeService someService;
@Scheduled(cron = "0 5 0 * * ?", zone="America/Mexico_City")
public void doSomething() {
log.info("Starting scheduled task");
if(condition) {
startScheduled();
} else {
stopScheduled();
}
}
}
请注意 @Component 注释,此外,这个玉米表达式将在我所在时区的每天 00:05 执行任务。
希望这可以帮助
添加回答
举报
0/150
提交
取消