美文网首页
失效的分布式锁解锁

失效的分布式锁解锁

作者: Lupino | 来源:发表于2021-09-08 23:22 被阅读0次

为了解决保证不出现死锁,每个分布式锁都有一个超时时间,解锁由一个 task 来执行。

最近发现无法解锁,也就是解锁task挂了,pending 了。

我们调试发现到查询 PostgreSQL 数据库的时候 pending 了,就在哪里停住了。

我们调试了非常的久,打印了些日志。

发现print count 会pending。

最后我们找到了问题所在,我们使用了不安全的 maximum 函数。

由于 haskell 是惰性语言,所以在在执行出没有挂,在 使用的时候挂了。

maximum [] 会使得task直接挂掉,进而没有执行。

我们只要简单的修复一下,问题便解决了。

相关文章

  • 失效的分布式锁解锁

    为了解决保证不出现死锁,每个分布式锁都有一个超时时间,解锁由一个 task 来执行。 最近发现无法解锁,也就是解锁...

  • 基于zookeeper的分布式锁

    复习 临时顺序节点 zk实现分布式锁原理 - 加锁 zk实现分布式锁原理 - 解锁

  • redis

    1.redis 分布式锁及问题 (1)实现: 加锁:setnx、解锁:del、锁超时:expire (2)可能出现...

  • 分布式锁redis和zk的使用和比较

    一 基于redis的分布式锁 setnx 方式设置值;从而加锁; 解锁时,为了保证原子性(查询锁,判断值并删除),...

  • redis分布式锁(幂等性处理),lua脚本实现,java调用(

    关于redis分布式锁的理论不做赘述。 加锁 java调用方式 redis_lock.lua 解锁 java调用方...

  • Redisson 分布式锁的正确使用

    背景介绍 前段时间,在写公司的一个项目的时候,用到了分布式锁,一个同事告诉我说,分布式锁解锁在高并发的时候会报错。...

  • 分布式锁

    分布式锁需要遵循的准则 可重入(同一线程可重复获得锁) 加锁解锁时的高可用,例如(一个(模块)宕掉,一直不释放锁)...

  • Redis Lua参考

    以Redis分布式锁解锁lua脚本为例: 执行lua(注意参数key后面的空格): 使用ldb调试lua: 常用调...

  • 分布式锁

    为什么要用分布式锁 数据库乐观锁redis分布式锁zookeeper分布式锁 使用分布式锁的场景 实现分布式锁的方...

  • 无奈的所为

    锁了,申述,解锁了。既然解锁了,为什么 又锁了,为什么?出尔反尔。 据说这样也锁,绝了?

网友评论

      本文标题:失效的分布式锁解锁

      本文链接:https://www.haomeiwen.com/subject/qhibwltx.html