RabbitMQ 利用消息超时和死信交换机实现定时任务

Posted MalcolmF

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RabbitMQ 利用消息超时和死信交换机实现定时任务相关的知识,希望对你有一定的参考价值。

  在 RabbitMQ 的基础功能中,并没有定时任务或者延时任务这种功能,然而很多业务都有此类需求,但是我们可以依赖 RabbitMQ 的消息自动超时和死信交换机等基本的属性来实现这类需求,大致思路如下:

  1.通过计算 任务执行时间 和 当前时间的时间差,作为消息的超时时间(Expire)属性;

  2.将消息发到一个具有死信交换机的队列中暂时缓存消息;

  3.消息在缓存队列中到达超时时间,自动发送到死信交换机,从而到达任务目标队列,由消费者进行消费;

  流程图如下:

   

以上是关于RabbitMQ 利用消息超时和死信交换机实现定时任务的主要内容,如果未能解决你的问题,请参考以下文章

Go RabbitMQ 死信消息队列

RabbitMq 实现延时队列-Springboot版本

消息队列 - 死信、延迟、重试队列

RabbitMQ的死信队列和延时队列

RabbitMQ 死信队列 定时队列 延时队列

RabbitMQ实战-死信队列