7.15. 延迟队列(Delayed Queue)

基于Redis的Redisson分布式延迟队列(Delayed Queue)结构的RDelayedQueue Java对象在实现了RQueue接口的基础上提供了向队列按要求延迟添加项目的功能。该功能可以用来实现消息传送延迟按几何增长或几何衰减的发送策略。

  1. RQueue<String> distinationQueue = ...
  2. RDelayedQueue<String> delayedQueue = getDelayedQueue(distinationQueue);
  3. // 10秒钟以后将消息发送到指定队列
  4. delayedQueue.offer("msg1", 10, TimeUnit.SECONDS);
  5. // 一分钟以后将消息发送到指定队列
  6. delayedQueue.offer("msg2", 1, TimeUnit.MINUTES);

在该对象不再需要的情况下,应该主动销毁。仅在相关的Redisson对象也需要关闭的时候可以不用主动销毁。

  1. RDelayedQueue<String> delayedQueue = ...
  2. delayedQueue.destroy();