iis服务器助手广告
返回顶部
首页 > 资讯 > 前端开发 > html >如何使用TTL+DLX的方式来实现 延迟消息
  • 887
分享到

如何使用TTL+DLX的方式来实现 延迟消息

2024-04-02 19:04:59 887人浏览 泡泡鱼
摘要

这篇文章主要介绍如何使用TTL+DLX的方式来实现 延迟消息,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!正文:  网上都是2种办法去实现,第二种我就不说了,要升级Rabb

这篇文章主要介绍如何使用TTL+DLX的方式来实现 延迟消息,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

正文:

  网上都是2种办法去实现,第二种我就不说了,要升级RabbitMQ 别人也说什么什么不行

   TTL + DLX 的方式来实现 延迟消息(java的 python的相关代码都有 就是没有 拍huang片的!!!!)

  撸代码咯:

  1.首先得要创建一个新的队列 新的交换机来存放延迟消息 并且设置新的队列消息ttl到期后 转发的 交换机 和 routeing key (我的老的交换机为e_test  key 为k1)

主要代码为:

function MQInitYanChi($e_name,$q_name,$k_route,$conn)

{

//创建连接和channel 

  

$channel = new AMQPChannel($conn); 

//创建交换机对象    

$ex = new AMQPExchange($channel);   

$ex->setName($e_name); 

$ex->setType(AMQP_EX_TYPE_DIRECT); //必须设置

$ex->setFlags(AMQP_DURABLE); //持久化 可以不必选

echo "exchange status:".$ex->declareExchange().'\n';

//绑定交换机与队列,并指定路由键 

//创建队列    

$q = new AMQPQueue($channel); 

$q->setName($q_name);   

#$q->setFlags(AMQP_DURABLE); //持久化  

$q->setArgument('x-dead-letter-exchange','e_test'); //设置ttl超时转发到e_test

$q->setArgument('x-dead-letter-routing-key','k1'); //设置ttl超时转发的key为k1

echo "Message Total:".$q->declare()."\n";   

echo 'Queue Bind: '.$q->bind($e_name, $k_route)."\n"; 

return $ex;

}

  2.也就是消息发送的送时候设置ttl就行了 其实很简单

主要代码:

$message = "测试延迟!"; 

$ex1=mqInitYanChi('e_yanchi','q_yanchi','k1',$conn);

$attributes = array('expiration' => 5000); //设置为5秒

$ex1->publish($message,'k1','1',$attributes);

就这样 就可以发送到q_yanchi队列里边的 消息 五秒后过期  转发到 绑定了 e_test的交换机 routing-key 为k1的队列中去了  

以上是“如何使用TTL+DLX的方式来实现 延迟消息”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网html频道!

--结束END--

本文标题: 如何使用TTL+DLX的方式来实现 延迟消息

本文链接: https://www.lsjlt.com/news/83706.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何使用TTL+DLX的方式来实现 延迟消息
    这篇文章主要介绍如何使用TTL+DLX的方式来实现 延迟消息,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!正文:  网上都是2种办法去实现,第二种我就不说了,要升级rabb...
    99+
    2024-04-02
  • PHP实现异步延迟消息队列的方法详解
    目录一、前言二、场景三、安装RabbitMQ延迟队列插件四、在Laravel框架中进行使用五、执行生产消息和消费消息一、前言 需求:电商秒杀场景中,如果用户下单10分钟未支付,需要进...
    99+
    2024-04-02
  • Java 延迟队列的常用的实现方式
    目录1.  DelayQueue2.  Redis Key过期回调3.  RocketMQ延迟队列的使用场景还比较多,例如: 1、超时未收到支付回调,主...
    99+
    2024-04-02
  • AngularJS如何使用ocLazyLoad实现js延迟加载
    这篇文章主要介绍AngularJS如何使用ocLazyLoad实现js延迟加载,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!开发一个系统遇到了一个问题,用angular路由一个htm...
    99+
    2024-04-02
  • 如何使用PHP实现延迟页面跳转
    PHP是一种流行的服务器端编程语言,被广泛地用于网站和Web应用程序开发。在很多情况下,我们需要在Web应用程序中实现一些复杂的操作,例如数据处理、文件上传等等。在这些操作完成后,我们可能需要将用户重定向到另一个页面。然而,有时我们希望延迟...
    99+
    2023-05-14
  • 如何利用rabbitMq的死信队列实现延时消息
    目录前言mq基本的消息模型mq死信队列的消息模型maven依赖配置普通队列和死信队列死信队列消费者发送消息测试测试成功总结前言 使用mq自带的死信去实现延时消息要注意一个坑点,就是m...
    99+
    2023-01-28
    rabbitMq死信队列 rabbitMq延时消息 rabbitMq延时队列
  • Golang RabbitMQ: 实现高性能、低延迟和高可用的消息传递的最佳实践
    以下是使用Golang和RabbitMQ实现高性能、低延迟和高可用的消息传递的最佳实践:1. 使用连接池:在与RabbitMQ建立连...
    99+
    2023-10-20
    Golang
  • python如何实现类似defer的延迟调用
    这篇文章给大家分享的是有关python如何实现类似defer的延迟调用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。实现类似 defer 的延迟调用在 Golang 中有一种延迟调用的机制,关键字是 defer,...
    99+
    2023-06-27
  • 如何使用redis实现消息队列
    使用redis实现消息队列的示例:redis的pubsub功能实现发布订阅模式,代码:import redisclass Task(object):def __init__(self):self.rcon = redis.StrictRed...
    99+
    2024-04-02
  • golang函数中的延迟调用是如何实现的?
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-23
  • SpringBoot如何使用WebSocket实现点对点消息
    这篇文章主要介绍“SpringBoot如何使用WebSocket实现点对点消息”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringBoot如何使用WebSocket实现点对点消息”文章能帮助大...
    99+
    2023-07-06
  • 如何使用socket.io实现消息实时推送功能
    本篇文章给大家分享的是有关如何使用socket.io实现消息实时推送功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Socket.io 介绍...
    99+
    2024-04-02
  • C#使用udp如何实现消息的接收和发送
    目录使用udp实现消息的接收和发送C# 运用UDP服务端界面客户端界面总结使用udp实现消息的接收和发送 代码比较简单,但是别忘记关闭防火墙进行测试。 首先便是服务端,使用Socke...
    99+
    2023-02-26
    C#使用udp udp消息接收 udp消息发送
  • Kafka中如何实现自定义的消息存储格式
    在Kafka中,可以通过实现自定义的序列化和反序列化器来实现自定义的消息存储格式。以下是实现自定义消息存储格式的一般步骤: 定义...
    99+
    2024-04-09
    Kafka
  • 如何利用Redis实现分布式消息发布与订阅
    如何利用Redis实现分布式消息发布与订阅引言:在分布式系统中,消息发布与订阅是一种常见的通信模式,可以实现不同模块之间的解耦。Redis作为一种高性能的键值对存储系统,可以用来实现分布式消息发布与订阅功能。本文将介绍如何使用Redis来实...
    99+
    2023-11-07
    分布式 redis 消息发布
  • Redis 中使用 list,streams,pub/sub 几种方式实现消息队列的问题
    目录使用 Redis 实现消息队列基于List的消息队列分析下源码实现基于 Streams 的消息队列分析下源码实现stream 的结构streamCG 消费者组streamCons...
    99+
    2024-04-02
  • 如何使用AQ实现异步消息传递和处理
    要使用AQ(Advanced Queuing)实现异步消息传递和处理,首先需要在Oracle数据库中创建一个队列和一个相关联的队列表...
    99+
    2024-03-02
    AQ
  • 如何使用Python实现微信消息的一键已读功能
    这篇文章主要介绍了如何使用Python实现微信消息的一键已读功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。关键词微信消息一键已读 微信消息批量已读 微信消息全部已读1、微...
    99+
    2023-06-15
  • Golang技术如何实现分布式系统中的消息传递?
    在分布式系统中,go 提供强大库来实现可靠消息传递。开发人员可选择合适的中间件,如 kafka、rabbitmq 或 nats。本文演示了使用 nats 实现发布/订阅模型,包括发布者和...
    99+
    2024-05-08
    分布式系统 消息传递 git apache golang
  • 探讨如何使用不同的布局方式来实现Swiper组件
    随着移动设备的普及和用户对交互性体验的要求提高,轮播图已经成为了许多移动端应用和网站中的常见组件。在Uniapp中,Swiper组件可以帮助我们快速地实现轮播图功能。然而,Swiper默认的布局方式可能无法满足我们的需求,本文将探讨如何使用...
    99+
    2023-05-14
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作