ppgjx 发表于 2024-8-25 16:44

redisson延迟队列业务请教

我的需求,使用redisson延迟队列来实现发送任务

RDelayedQueue<String> delayedQueue = redissonClient.getDelayedQueue(redissonClient.getQueue(RedisKey.KEY_EX_Q));
delayedQueue.offer(key,delay,TimeUnit.SECONDS);

正常下来是没问题的 但是我有这样一个需求 我想要手动删除某个延迟队列的键 需要怎么做呢

之前用过redis的过期键 但是他没有办法保证键过期时间一定会发送通知 应用服务器挂掉 也是监听不到键过期

Kuronoks 发表于 2024-8-25 23:10

不是有remove方法吗?

xm0927 发表于 2024-8-30 16:01

本帖最后由 xm0927 于 2024-8-30 16:02 编辑

有没有其他方法呢

wuaipojie_lbw 发表于 2024-9-3 18:50

// 获取延迟队列
RBlockingQueue<String> blockingQueue = redissonClient.getBlockingQueue(RedisKey.KEY_EX_Q);
RDelayedQueue<String> delayedQueue = redissonClient.getDelayedQueue(blockingQueue);

// 添加任务到延迟队列
delayedQueue.offer(key, delay, TimeUnit.SECONDS);

// 删除特定任务
boolean removed = delayedQueue.remove(key);
if (removed) {
    System.out.println("任务已成功删除");
} else {
    System.out.println("任务删除失败");
}
页: [1]
查看完整版本: redisson延迟队列业务请教