定时任务是指开发者在特定的时间间隔内或在特定时间执行代码,适合处理需要定期执行的任务或者需要在未来某个时间点执行的任务。
应用场景(部分)
定时任务调度 :例如每天凌晨执行数据备份、定时数据同步等操作。
周期性任务 :例如每隔一段时间执行一次缓存清理、日志归档等操作。
定时提醒或通知 :例如定时发送邮件、短信提醒等。
定时任务监控:例如定时检查系统状态、定时报告生成等。
代码实现:
java
@SpringBootApplication
@EnableScheduling //开启定时任务
public class AccountApplication {
public static void main(String[] args) {
ApplicationContext context = SpringApplication.run(AccountApplication.class, args);
}
}
@Component
public class TaskUtil {
/*** 每日凌晨执行 23时59分59秒
* @Author FM_南风
* @Date 2024/6/28 10:26
**/
//cron 秒 分 时 日 月 星期 年
@Scheduled(cron = "59 59 23 * * 1-7")
public void doEveryDayTask(){
//执行逻辑
}
//每5000毫秒执行一次
@Scheduled(fixedRate = 5000)
public void do(){
//执行逻辑
}
}
cron特殊字符:
*字符: 表示所有值。
?字符: 表示不确定的一个值,即任意一个合法值, 如每月的7号触发一个操作则设置 0 0 0 7 * ?。
-字符: 表示连续的范围,如在小时中定义10-12,表示在10,11,12点每小时触发一次。
/字符: 表示指定一个值的增加幅度。n/m表示从n开始,每次m过后执行, 如在 秒上定义1/5 表示从 第 1 秒开始 每 5 秒执行一次。