报错。这个一会再说

021-01-28 20:42:32.227 [MyScheduler_Worker-3] [1;31mERROR[0;39m [36morg.quartz.core.ErrorLogger:2401[0;39m - Job (DEFAULT.org.jeecg.modules.arrive.job.ArriveTestJob threw an exception.
org.quartz.SchedulerException: Job threw an unhandled exception.at org.quartz.core.JobRunShell.run(JobRunShell.java:213)at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
Caused by: java.lang.IllegalStateException: failed to create a child event loopat io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:88)at io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:58)at io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:47)at io.netty.channel.MultithreadEventLoopGroup.<init>(MultithreadEventLoopGroup.java:59)at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:77)at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:72)at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:59)at org.redisson.connection.MasterSlaveConnectionManager.<init>(MasterSlaveConnectionManager.java:187)at org.redisson.connection.MasterSlaveConnectionManager.<init>(MasterSlaveConnectionManager.java:156)at org.redisson.connection.SingleConnectionManager.<init>(SingleConnectionManager.java:34)at org.redisson.config.ConfigSupport.createConnectionManager(ConfigSupport.java:192)at org.redisson.Redisson.<init>(Redisson.java:122)at org.redisson.Redisson.create(Redisson.java:161)at org.jeecg.modules.arrive.job.ArriveTestJob.getClient(ArriveTestJob.java:138)at org.jeecg.modules.arrive.job.ArriveTestJob.execute(ArriveTestJob.java:47)at org.quartz.core.JobRunShell.run(JobRunShell.java:202)... 1 common frames omitted
Caused by: io.netty.channel.ChannelException: failed to open a new selectorat io.netty.channel.nio.NioEventLoop.openSelector(NioEventLoop.java:169)at io.netty.channel.nio.NioEventLoop.<init>(NioEventLoop.java:143)at io.netty.channel.nio.NioEventLoopGroup.newChild(NioEventLoopGroup.java:127)at io.netty.channel.nio.NioEventLoopGroup.newChild(NioEventLoopGroup.java:36)at io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:84)... 16 common frames omitted
Caused by: java.io.IOException: Too many open filesat sun.nio.ch.IOUtil.makePipe(Native Method)at sun.nio.ch.EPollSelectorImpl.<init>(EPollSelectorImpl.java:65)at sun.nio.ch.EPollSelectorProvider.openSelector(EPollSelectorProvider.java:36)at io.netty.channel.nio.NioEventLoop.openSelector(NioEventLoop.java:167)... 20 common frames omitted

最近在用jeecg-boot 定时任务的时候,时间间隔短,所以会出现在上条数据还没更新完,又开始查询,所以会出现推送两个条,或者多条一样的数据

所以就想用锁把当前的数据更新完,再进行查询

1.pom.xml引入redis锁

<!-- reids锁 --><dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId><version>3.8.2</version></dependency>

2.写静态方法

public static RedissonClient getClient() {Config config = new Config();config.useSingleServer().setAddress("redis://127.0.0.1:6380");RedissonClient redisson = Redisson.create(config);return redisson;}

3.包裹住业务

RedissonClient redisson = PoOrderTestJob.getRedisSing();RLock lock = redisson.getLock("PoOrderTestJobLock");// 1. 尝试加锁,最多等待10秒,上锁以后10秒自动解锁try {boolean res = lock.tryLock(10, 30, TimeUnit.SECONDS);if (res) {//成功//处理业务}} catch (Exception e) {log.info("", e);} finally {lock.unlock();}

4.然后运行一会出先上面的错误

解决方法:不去每次都new,而是不会null,就去调用原来的。

private static RedissonClient redisson=null;public static synchronized RedissonClient getRedisSing(){if(redisson==null){Config config = new Config();config.useSingleServer().setAddress("redis://127.0.0.1:6380");redisson = Redisson.create(config);}return redisson;}

避免创建太多的redis从而出现上面的报错

脏读,redis分布式锁报错相关推荐

  1. 记一次自定义 Redis 分布式锁导致的故障

    点击上方关注 "终端研发部" 设为"星标",和你一起掌握更多数据库知识 背景 企微报警群里连续发出生产环境报错警告,报错核心信息如下: redis setNX ...

  2. 记一次自定义Redis分布式锁导致的生产事件时间

    背景 企微报警群里连续发出生产环境报错警告,报错核心信息如下: redis setNX error java.lang.NumberFormatException: For input string: ...

  3. 记一次自定义Redis分布式锁导致的生产事件

    背景 企微报警群里连续发出生产环境报错警告,报错核心信息如下: redis setNX error java.lang.NumberFormatException: For input string: ...

  4. 大家所推崇的Redis分布式锁真的就万无一失吗?

    在单实例JVM中,常见的处理并发问题的方法有很多,比如synchronized关键字进行访问控制.volatile关键字.ReentrantLock等常用方法.但是在分布式环境中,上述方法却不能在跨J ...

  5. @transaction使自定义注解失效_【完美】SpringBoot中使用注解来实现 Redis 分布式锁...

    一.业务背景 有些业务请求,属于耗时操作,需要加锁,防止后续的并发操作,同时对数据库的数据进行操作,需要避免对之前的业务造成影响. 二.分析流程 使用 Redis 作为分布式锁,将锁的状态放到 Red ...

  6. redis 分布式锁的 5个坑,真是又大又深

    引言 最近项目上线的频率颇高,连着几天加班熬夜,身体有点吃不消精神也有些萎靡,无奈业务方催的紧,工期就在眼前只能硬着头皮上了.脑子浑浑噩噩的时候,写的就不能叫代码,可以直接叫做Bug.我就熬夜写了一个 ...

  7. 聊聊redis分布式锁的8大坑

    在分布式系统中,由于redis分布式锁相对于更简单和高效,成为了分布式锁的首先,被我们用到了很多实际业务场景当中. 但不是说用了redis分布式锁,就可以高枕无忧了,如果没有用好或者用对,也会引来一些 ...

  8. Redis分布式锁-这一篇全了解(Redission实现分布式锁完美方案)

    前言 在某些场景中,多个进程必须以互斥的方式独占共享资源,这时用分布式锁是最直接有效的. 随着技术快速发展,数据规模增大,分布式系统越来越普及,一个应用往往会部署在多台机器上(多节点),在有些场景中, ...

  9. Redis 分布式锁的正确实现原理演化历程与 Redisson 实战总结

    Redis 分布式锁使用 SET 指令就可以实现了么?在分布式领域 CAP 理论一直存在. 分布式锁的门道可没那么简单,我们在网上看到的分布式锁方案可能是有问题的. 一步步带你深入分布式锁是如何一步步 ...

最新文章

  1. HJ29 字符串加解密
  2. python3的3D实战 -基于panda3d(4)
  3. ICCV 2021 | 通过显式寻找物体的extremity区域加快DETR的收敛
  4. 用canvas整个打飞机游戏
  5. 阿里安全图灵实验室再次刷新世界顶级算法比赛成绩
  6. java集合考试_java集合练习
  7. 数字游戏(水博客ing / csp-J T1 / luogu 5660)
  8. 前端学习(1985)vue之电商管理系统电商系统之本地分支放到git上面保存
  9. linux 禁止 密码 登陆,CentOS设置证书登录并禁止密码登录
  10. 道指mt4代码_道恩转债上市首日遭大股东清仓式减持!
  11. ossim系统下nagios监控机器可用性用rrd图形显示
  12. 一个中文字符占几个字节_字节与字符的关系
  13. 华盛顿大学计算机专业gpa,华盛顿大学计算机专业相关介绍
  14. 汉字拼音互相转换工具类
  15. 中山医06年考研初试复试全攻略!( 完整版)
  16. 低代码助力制造型企业——工时管理系统
  17. python3 pycharm 抓取app 上的数据
  18. linux清除firefox打开就崩溃,火狐一打开就崩溃,求解决方法!
  19. Processing 案例 | 用粒子系统谱写冰与火之歌
  20. java面试题(一)Java面试问题集

热门文章

  1. 在线文档管理工具都有什么值得推荐的?
  2. Go安装:语言环境+开发工具GoLand
  3. windows文件比较命令
  4. rstudio跑不动咋整?-------生信豆芽菜
  5. html调整表格位置上下左右,利用jquery实现在html的表格中使用上下左右键切换单元格,同时只限制单元格输入数字...
  6. paddlehub人像抠图+PIL图像处理
  7. if(i),if(!i)和while(i),while(!i)的理解
  8. JAVA面向对象编程作业(Chapter10、11)
  9. ValueError: Expected 2D array, got 1D array instead
  10. 【Java客户端访问Kafka】