在任务执行之前去获取锁,哪个服务获取到锁,哪个服务去执行任务
@Service
@Slf4j
public class SchedulerService {
@Autowired
private RedisTemplate redisTemplate;
@Scheduled(cron = "0/5 * * * * ?")
public void sendSms(){
try(RedisLock redisLock = new RedisLock(redisTemplate,"autoSms",30)) {
if (redisLock.getLock()){
log.info("向138xxxxxxxx发送短信!");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
启动类加上@EnableScheduling注解
@SpringBootApplication
@MapperScan("com.example.distributelock.dao")
@EnableScheduling
public class DistributeLockApplication {
public static void main(String[] args) {
SpringApplication.run(DistributeLockApplication.class, args);
}
}
9998定时任务执行情况
9999定时任务执行情况