引入依赖
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>3.8.1</version>
</dependency>
RedissonClient
@Configuration
public class MyRedissonConfig {
@Bean
RedissonClient redisson() throws IOException {
Config config = new Config();
config.useSingleServer().setAddress("redis://192.168.29.128:6379");
return Redisson.create(config);
}
}
spring的scheduling定时任务类
@Service
public class CronService1 {
@Autowired
RedissonClient redisson;
@Scheduled(cron = "10 5/1 * * * ? ")
private void execute() throws Exception {
RLock lock = redisson.getLock("my-lock");
if (lock.tryLock(3, TimeUnit.SECONDS)){
try {
System.out.println(OffsetDateTime.now() + " &redisson上锁:" + Thread.currentThread().getId());
TimeUnit.SECONDS.sleep(3);
} catch (Exception e) {
e.printStackTrace();
} finally {
System.out.println(OffsetDateTime.now() + " &redisson解锁:" + Thread.currentThread().getId());
lock.unlock();
}
}
}
}