基于Redisson实现延长队列

源代码 2024-9-12 22:52:16 122 0 来自 中国
Redisson实现延长队列

1.场景先容

假设有如许一个场景,我们有一个订单,大概工单等等。必要在超时30分钟后举行关闭。这个时间我们开始想到的应该是接纳定时使命去举行轮训判定,但是呢,每个订单的创建时间是不一样的,这个时间怎么确定才好呢,5分钟。。1分钟。。实行一次吗。如许就会非常影响性能。且时间弊端很大。基于以上业务必要我们想到了有以下办理方案。

  • JDK延长队列,但是数据都在内存中,重启后什么都没了。
  • MQ中的延长队列,比如RocketMQ。
  • 基于Redisson的延长队列
2.JDK延长队列

我们起首来回顾下JDK的延长队列
基于延长队列要实现接口Delayed,而且实现getDelay方法和compareTo方法

  • getDelay紧张是计算返回剩余时间,单位时间戳(毫秒)延长使命是否到时就是按照这个方法判定如果返回的是负数则阐明到期否则还没到期
  • compareTo紧张是自界说实现比力方法返回 1 0 -1三个参数
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-11-22 22:46, Processed in 0.173653 second(s), 32 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表