一、定时调度的使用
依赖于@Scheduled 注解。
需要遵守的规则:
1.方法不应该接受任何参数。
2.该方法的返回类型应为 void。
二、启用调度
只需要将@EnableScheduling注释添加到主类。
三、固定费率的任务
要在固定的内部安排方法触发,我们可以使用注解fixedRate中的参数。@Scheduled举个例子,我们希望每 1 秒执行一次方法:
@Scheduled(fixedRate = 1000)
public void sayHello(){
LOG.info("Hello from our simple scheduled method");
}
四、固定延迟调度
假设我们希望在最后一次执行和下一次执行开始之间有一个固定的延迟。我们可以使用fixedDelay这个注解中的参数。此参数计算最后一次调用完成后的延迟。
@Scheduled(fixedDelay = 2000)
public void fixedDelayExample(){
LOG.info("Hello from our Fixed delay method");
}
五、Cron 表达式
Cron 表达式是一种灵活而强大的任务调度方式。该模式是六个以空格分隔的单个字段的列表:表示秒、分钟、小时、日、月、工作日。月份和工作日名称可以作为英文名称的前三个字母。在此示例中,我们使用 cron 表达式每 1 分钟安排一次任务:
@Scheduled(cron = "0 * * * * ?")
public void scheduleTaskWithCronExpression() {
LOG.info("Example to show how cron expression can be used");
}