Java提供了两种后台任务的方法
- 调度任务;@Schedule
异步任务;@Async
当然,使用这两个是有条件的,需要在spring应用的上下文中声明
<task:annotation-driven/>
当然,如果我们是基于java配置的,需要在配置哪里加多EnableScheduling
@EnableScheduling public class WebAppConfig { .... }
@Schedule
先看下@Schedule怎么调用再说
public final static long ONE_DAY = 24 * 60 * 60 * 1000;
public final static long ONE_HOUR = 60 * 60 * 1000;
@Scheduled(fixedRate = ONE_DAY)
public void scheduledTask() {
System.out.println(" 我是一个每隔一天就会执行一次的调度任务");
}
@Scheduled(fixedDelay = ONE_HOURS)
public void scheduleTask2() {
System.out.println(" 我是一个执行完后,隔一小时就会执行的任务");
}
@Scheduled(cron = "0 0/1 * * * ? ")
public void ScheduledTask3() {
System.out.println(" 我是一个每隔一分钟就就会执行的任务");
}
需要注意的
关于最后一个,在指定时间执行的任务,里面使用的是
Cron表达式
,同时我们看到了两个不一样的面孔fixedDe