在java项目中使用定时任务常用的实现方式有 Timer定时器,Hu tool工具包,Quartz等 ,Quartz是一个完全由 Java 编写的开源作业调度框架,可以用它来实现定时任务
springboot默认实现了定时任务,只需要简单的配置即可使用,并且是配置到ioc容器中的
1.启动类添加@EnableScheduling
@EnableScheduling //开启定时任务
@SpringBootApplication
public class YuchenBootApplication{
public static void main(String[] args) {
SpringApplication.run(YuchenBootApplication.class,args);
}
}
2.编写定时任务类
@Component
public class SysUserTask {
Logger log= LoggerFactory.getLogger(SysUserTask.class);
@Autowired
private SystemLogService systemLogService;
@Scheduled(cron = "*/1 * * * * *") //每隔1秒执行一次
public void checkLoginUserTotal(){
log.info("11111111111111111");
}
}
@Scheduled注解只支持6位表达式
Cron表达式范例:
每隔5秒执行一次:*/5 * * * * ?
每隔1分钟执行一次:0 */1 * * * ?
每隔1小时执行一次:0 0 */1 * * ?
每天23点执行一次:0 0 23 * * ?
每天凌晨1点执行一次:0 0 1 * * ?
每月1号凌晨1点执行一次:0 0 1 1 * ?
每月最后一天23点执行一次:0 0 23 L * ?
每周星期天凌晨1点实行一次:0 0 1 ? * L
在26分、29分、33分执行一次:0 26,29,33 * * * ?
每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?