2 回答

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 执行任务。
希望这可以帮助
添加回答
举报