1:
启动类加注解@EnableScheduling
方法上加注解@Scheduled(cron = "0 0 0/1 * * ?") 什么时候执行,例如@Scheduled(cron = "*/15 * * * * ?")是15秒一次
方法上加注解@ScheduledCluster 可选注解,如果集群项目,多台服务器上都有这个定时任务,可以让其中一个服务器跑其他的不会跑
该注解用在@Scheduled
的方法上,可选的,有以下属性和作用
属性 | 必填 | 说明 |
---|---|---|
id | 否 | 自定义任务id,同一个时间段内同一个id的任务只有一个能执行成功 |
description | 否 | 任务描述 |
ignore | 否 | 是否忽略集群控制,作用跟level=-1一样,但只针对该任务 |
@ScheduledCluster(id="updateData", description = "每小时更新一次数据")
@Scheduled(cron = "0 0 0/1 * * ?")
public void update(){
// 更新数据
}
///
2:或者设置主从服务器
主从服务器是通过设置服务器优先级实现,实现原理是优先级