springboot整合redis分布式锁+定时任务

本文介绍了如何在SpringBoot应用中整合Redis实现分布式锁,以确保多实例环境下定时任务的互斥执行。通过配置Redis依赖、设置定时任务注解、编写RedisConfig和QuertService的核心代码,实现了在不同服务器实例上仅有一台执行定时任务。测试步骤包括在IDEA中启动两个服务实例,观察只有其中一个实例成功获取并执行了定时任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

springboot整合redis分布式锁+定时任务

通常一个实例需要部署到多台服务器上,执行定时任务的话,到了执行时间,多台服务器上的实例会同时执行。需要解决此问题,这里用到redis分布式锁

pom.xml

redis依赖

<!-- redis *********************  Begin -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- redis *********************  End -->

application.properties

server.port=2080

########## redis ###########
# Redis数据库索引(默认为0)
spring.redis.database=0
# Redis服务器地址
spring.redis.host=127.0.0.1
# Redis服务器连接端口
spring.redis.port=6379
# Redis服务器连接密码(默认为空)
spring.redis.password=
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.pool.max-active=100
# 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.pool.max-wait=-1
# 连接池中的最大空闲连接
spring.redis.pool.max-idle=10
# 连接池中的最小空闲连接
spring.redis.pool.min-idle=0
# 连接超时时间(毫秒)
spring.redis.timeout=6000

启动类

添加定时任务注解:@EnableScheduling

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;

@EnableScheduling
@SpringBootApplication
public class DemoApplication {
   
   

    public static void main(String[] args) {
   
   
        SpringApplication.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值