基于redis分布式锁解决定时任务重复问题

2023-11-02

在看代码之前请先看优化篇:基于Redis的Setnx实现分布式锁_p&f°的博客-CSDN博客

1、在启动了上加 @EnableScheduling 注解

@SpringBootApplication
@MapperScan("com.xpf.distributelock.dao")
@EnableScheduling
public class DistributeLockApplication {

    public static void main(String[] args) {
        SpringApplication.run(DistributeLockApplication.class, args);
    }

}

2、 写一个server类

import com.xpf.distributelock.until.RedisLock;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;

/**
 * @auther xpf
 * @date 2022/6/10 21:24
 * @description 定时任务
 */
@Slf4j
@Service
public class SchedulerService {

    @Autowired
    private RedisTemplate redisTemplate;

    @Scheduled(cron = "0/5 * * * * ?")
    public void sendSms(){
        try(RedisLock redisLock = new RedisLock("autoSms", 30, redisTemplate)){
            if(redisLock.getLock()){
                log.info("向我开炮。。。。									
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于redis分布式锁解决定时任务重复问题 的相关文章

  • connect-redis - 如何保护会话对象免受竞争条件影响

    我使用 nodejs 和 connect redis 来存储会话数据 我将用户数据保存在会话中 并在会话生命周期中使用它 我注意到两个更改会话数据的请求之间可能存在竞争条件 我尝试过使用 redis lock 来锁定会话 但这对我来说有点问
  • 如何使用Spring Cache处理redis异常?

    我目前正在开发一个包含 Spring Data Redis 和 Spring Cache 的项目 在spring data redis中 我使用redis模板调用redis 我在 try catch 块中处理 redis 模板抛出的所有异常
  • 为什么Redis中不建议使用KEYS?

    在Redis中 建议不要使用按键命令 https redis io commands KEYS 为什么会这样呢 是因为它的时间复杂度是 O N 吗 或者是别的什么原因 我做了下面的实验来证明KEYS命令有多么危险 当带有 KEYS 的一个命
  • 如何设置 Celery 以通过 ssl 与 Azure Redis 实例对话

    使用 的伟大答案 如何在microsoft azure上的django项目中配置celery redis https stackoverflow com questions 39616701 how to configure celery
  • Spring Data Redis JedisConnectionException:流意外结束

    雷迪斯3 0 5Spring数据Redis 1 3 6绝地武士2 6 3 我们的 Web 应用程序通过 pub sub 从 Redis 接收数据 还以键 值对的形式在 Redis 上执行数据读 写 读 写发生在监听线程 独立监控线程和htt
  • 如何将 ActionController::Live 与 Resque + Redis 一起使用(用于聊天应用程序)

    我正在尝试为我的 Rails 应用程序构建聊天功能 我在用ActionController Live Puma Resque Redis为了这 所以基本上在这种情况下 redissubscribe方法正在后台运行 使用resque 到目前为
  • Caffeine Expiry 中如何设置多个过期标准?

    我正在使用 Caffeine v2 8 5 我想创建一个具有可变到期时间的缓存 基于 值的创建 更新以及 该值的最后一次访问 读取 无论先发生什么都应该触发该条目的删除 缓存将成为三层值解析的一部分 The key is present i
  • 如何测试我的 Redis 缓存是否正常工作?

    我已经安装了 django redis cache 和 redis py 我遵循了 Django 的缓存文档 据我所知 以下设置就是我所需要的 但我如何判断它是否正常工作 设置 py CACHES default BACKEND redis
  • 使用Redis从有限范围内生成唯一ID

    我有一些数据库项目 除了主键之外 还需要项目所属组的唯一索引 我们来调用属性nbr 以及将项目分组在一起并定义唯一范围的属性nbr 我们会打电话group This nbr必须在 1 N 范围内 并且may从外部源导入项目时进行设置 由于所
  • socket.io 广播功能 & Redis pub/sub 架构

    如果有人能帮助我解决一个小疑问 我将不胜感激 使用socket io广播功能和在Redis上使用pub sub设计架构有什么区别 例如 在另一个示例中 node js 服务器正在侦听 socket io 针对 键 模型 todo 和值 数据
  • Redis发布/订阅:查看当前订阅了哪些频道

    我目前有兴趣查看我拥有的 Redis 发布 订阅应用程序中订阅了哪些频道 当客户端连接到我们的服务器时 我们将它们注册到如下所示的通道 user user id 这样做的原因是我希望能够看到谁 在线 目前 我在不知道客户端是否在线的情况下盲
  • 如何在Redis中从hmset()切换到hset()?

    我收到弃用警告 即 Redis hmset 已弃用 请改用 Redis hset 但是 hset 采用第三个参数 我不知道是什么name应该是 info users 10 timestamp datetime utcnow strftime
  • Redis Cluster 与 Pub/Sub 中的 ZeroMQ,用于水平扩展的分布式系统

    如果我要设计一个巨大的分布式系统 其吞吐量应随系统中的订阅者数量和通道数量线性扩展 哪个会更好 1 Redis集群 仅适用于Redis 3 0 alpha 如果是集群模式 您可以在一个节点上发布并在另一个完全不同的节点上订阅 消息将传播并到
  • Java 将字节转换为二进制安全字符串

    我有一些以字节为单位的数据 我想将它们放入Redis中 但是Redis只接受二进制安全字符串 而我的数据有一些二进制非安全字节 那么如何将这些字节转换为二进制安全字符串以便将它们保存到 Redis 中呢 Base64 对我有用 但它使数据更
  • 有没有办法用Lettuce自动发现Redis集群中新的集群节点IP

    我有一个Redis集群 3主3从 运行在一个库伯内斯簇 该集群通过Kubernetes 服务 Kube 服务 我将我的应用程序服务器连接到 Redis 集群 使用Kube 服务作为 URI 通过 Redis 的 Lettuce java 客
  • redis - 使用哈希

    我正在使用 redis 为我的 Web 应用程序实现社交流和通知系统 我是 redis 的新手 我对哈希值及其效率有一些疑问 我读过这篇很棒的文章Instagram 帖子 http instagram engineering tumblr
  • 使用 Celery 通过 Gevent 进行实时、同步的外部 API 查询

    我正在开发一个 Web 应用程序 该应用程序将接收用户的请求 并且必须调用许多外部 API 来编写对该请求的答案 这可以直接从主 Web 线程使用 gevent 之类的东西来扇出请求来完成 或者 我在想 我可以将传入的请求放入队列中 并使用
  • redis 2.8.7 Linux Sentinel环境配置问题,如何使其自启动,应该订阅什么?

    现在我们尝试使用 redis 2 8 7 作为缓存存储 来自使用 booksleeve 客户端的 NET Web 应用程序 目前看来这是一个非常有趣和令人兴奋的任务 redis 文档非常好 但由于缺乏真正的实践经验 我确实有几个关于如何正确
  • 在 Redis 上为 Django 和 Express.js 应用程序共享会话存储

    我想创建一个包含一些登录用户的 Django 应用程序 另一方面 由于我想要一些实时功能 所以我想使用 Express js 应用程序 现在的问题是 我不希望身份不明的用户访问 Express js 应用程序的日期 因此 我必须在 Expr
  • Redis+Docker+Django - 错误 111 连接被拒绝

    我正在尝试使用 Redis 作为使用 Docker Compose 的 Django 项目的 Celery 代理 我无法弄清楚我到底做错了什么 但尽管控制台日志消息告诉我 Redis 正在运行并接受连接 事实上 当我这样做时 docker

随机推荐

  • 面试题-HTTP/HTML/浏览器

    文章目录 1 说一下 http 和 https 2 tcp 三次握手 一句话概括 3 TCP 和 UDP 的区别 4 WebSocket 的实现和应用 5 HTTP 请求的方式 HEAD 方式 6 一个图片 url 访问后直接下载怎样实现
  • @Scheduled实现定时任务(实现多个定时任务并发执行)

    Scheduled实现定时任务 使用 Scheduled注解需要springboot启动类上添加注解 EnableScheduling SpringBootApplication MapperScan basePackages com xx
  • Animator组件的运用

    一 Animator组件 Controller 动画控制器Animator Controller Avatar 骨骼文件 仅当GameObject是人形角色时 才定义Avatar Apply Root Motion 绑定该组件的GameOb
  • STM32F103ZET6【标准库函数开发】------07 DAC实验

    STM32F103ZET6有两个12位的DAC转换器 各有一个输出通道 对应的IO口如下 DAC OUT1 PA4 DAC OUT2 PA5 介绍 当 DAC 的参考电压为 Vref 的时候 DAC 的输出电压是线性的从 0 Vref 12
  • YOLOv5:对yolov5n模型进一步剪枝压缩

    YOLOv5 对yolov5n模型进一步剪枝压缩 前言 前提条件 相关介绍 具体步骤 修改yolov5n yaml配置文件 单通道数据 黑白图片 修改models yolo py文件 修改train py文件 剪枝后模型大小 参考 前言 由
  • 线段树的入门-Poj2528(简单线段树和简单离散化)

    此题目的线段树就是一般的线段树思路 但是我们会发现他的范围实在是太大 怎么办 离散化 离散化的目的就是为了压缩空间 这个题目的离散化也是比较简单的 例如样例有5个区间 1 4 2 6 8 10 3 4 7 10 然后我们将这十个端点拿出来
  • SpringBoot实现装饰器模式

    文章目录 前言 一 装饰器模式简介 二 代码实现 1 定义制作奶茶接口 2 定义普通奶茶类 3 定义装饰器类 4 测试 总结 前言 装饰器模式在现实生活中的例子简直太多了 比如有个手机 裸机Phone类 如果需要不断的为这个Phone增添某
  • 使用VMware Workstation 16 Player安装ubuntu18.04

    VMware Workstation Player安装 这里是使用的VMware Workstation Player安装ubuntu虚拟机 软件安装不需要再说了吧 这里默认你已经安装好了VMware Workstation Player
  • 天天搜题 大学生在线免费的搜题网站

    1 网站使用Flask VUE3搭建 借助Nginx实现前后端全分离 题库已破千万 2 如果这篇文章的浏览量足够的话 我会使用Python高性能框架Tornado完整的教学大家如何编写 3 网站已经上线 大家可以进行测试 如果有什么逻辑问题
  • pgsql:odbc连接设置

    pgsql使用odbc工具连接时 需要安装pgsql odbc工具包 下载地址 psqlodbc数据源驱动 zip 互联网文档类资源 CSDN下载 1 选择数据库驱动 安装完后 在控制面板找到并打开odbc数据源 选择pgsql对应的驱动
  • WSL2常用命令、设置静态 IP 地址

    常用命令 列出分发版 wsl l wsl list wsl list all wsl list running 设置默认分发版 wsl s Ubuntu 取消注册和重新安装分发版 注销后 与该分发关联的所有数据 设置和软件都将永久丢失 从
  • 【详细】Spring、SpringBoot、SpringCloud、SpringCloudAlibaba、JDK、Maven版本对应关系

    注意 整理日期 2022年4月21日 0x0 SpringBoot Spring JDK Maven Spring Boot Version Spring Framework Version JDK Version Maven Versio
  • 南大通用GBase8s 常用SQL语句(284)

    在非缺省的语言环境中的 UNLOAD TO 数据格式 在非缺省的语言环境中 DATE DATETIME MONEY 和数值列值有语言环境对这些数据类型支持的格式 要获取更多信息 请参阅 GBase 8s GLS 用户指南 要获取更多关于 D
  • Java 删除链表中的节点

    删除链表中的节点 中等 有一个单链表的 head 我们想删除它其中的一个节点 node 给你一个需要删除的节点 node 你将 无法访问 第一个节点 head 链表的所有值都是 唯一的 并且保证给定的节点 node 不是链表中的最后一个节点
  • 二分查找--图文详解

    二分查找 1 什么是二分查找 2 原理 3 例子 3 1 当数组长度为奇数 3 1 当数组长度为偶数 3 3 实现过程 4 顺序查找与二分查找的区别 结束语 1 什么是二分查找 二分查找也称折半查找 是在一组有序 升序 降序 的数据中查找一
  • 刷题之旅第33站,CTFshow web12

    感谢ctf show平台提供题目 F12查看一下源代码 得到了提示 既然提示了cmd 那么可能后端代码中存在 eval 或者exec 等可以执行命令的代码 尝试提交 我们看到了php的配置信息 cmd phpinfo 使用glob通配符命令
  • C++笔记三(封装、静态、const、友元)

    1 C 面向对象特性 1 1C 面向对象的三大特性为 封装 继承 多态 万物皆对象 2 封装 2 1 封装的意义 其一 将属性和行为作为一个整体 表现生活中的事物 创建类别忘了 后有个 其实可以理解为类与结构体类似 类中的属性与行为统一称为
  • condition_variable用法

    参考文章 https blog csdn net princeteng article details 103945610添加链接描述 condition variable con 有两种用法 用法一 con wait lck return
  • UMC云管理平台下ESB产品升级说明

    随着近些年各种层出不穷的技术以及企业核心需求的推动 IT行业的发展势必会倒逼公司旗下产品的升级迭代 同时在产品由旧变新的升级过程中也有很多注意要点 由于公司产品大多以整合方案的形式部署到环境上 所以升级部署是否可快速简便尤为重要 产品升级对
  • 基于redis分布式锁解决定时任务重复问题

    在看代码之前请先看优化篇 基于Redis的Setnx实现分布式锁 p f 的博客 CSDN博客 1 在启动了上加 EnableScheduling 注解 SpringBootApplication MapperScan com xpf di
Powered by Hwhale