1、场景描述如下
服务器重启后,延迟队列take数据阻塞,不执行,必须等到下一个内容offer时,队列才会把阻塞的消息全部处理掉
2、解决方案
初始化程序时,再次调用延时队列的 getDelayedQueue方法
RDelayedQueue<String> delayedQueue = redissonClient.getDelayedQueue(blockingQueue);
3、伪代码如下
offer元素到延时队列
@RequestMapping("/test")
public String test() {
RBlockingQueue<String> blockingQueue = redissonClient.getBlockingQueue("RDelayedQueue");
RDelayedQueue<String> delayedQueue = redissonClient.getDelayedQueue(blockingQueue);
delayedQueue.offer("11", 10, TimeUnit.SECONDS);
delayedQueue.offer("22", 20, TimeUnit.SECONDS);
delayedQueue.offer("33", 30, TimeUnit.SECONDS);
delayedQueue.offer("100", 300, TimeUnit.SECONDS);
return