当前位置: 首页 > news >正文

重庆网站推广系统广告位招商怎么找客户

重庆网站推广系统,广告位招商怎么找客户,公司网站未备案,马可波罗网站如何做产品推广概述 在 RabbitMQ 中实现延迟消息通常需要借助插件(如 RabbitMQ 延迟队列插件),因为 RabbitMQ 本身不原生支持延迟消息。 延迟消息的一个典型场景是,当消息发布到队列后,等待一段时间再由消费者消费。这可以通过配置…

概述

在 RabbitMQ 中实现延迟消息通常需要借助插件(如 RabbitMQ 延迟队列插件),因为 RabbitMQ 本身不原生支持延迟消息。

延迟消息的一个典型场景是,当消息发布到队列后,等待一段时间再由消费者消费。这可以通过配置 TTL(Time-To-Live)和死信队列(DLX, Dead Letter Exchange)实现,或者通过 RabbitMQ 的延迟插件实现。

安装插件

下载地址

在这里插入图片描述

直接点击下载,然后将下载后的文件直接放入在 plugins 目录中:

在这里插入图片描述

启动插件:

rabbitmq-plugins enable rabbitmq_delayed_message_exchange

检查是否成功

打开可视化面板,访问 http://localhost:15672/#/ 账号密码都是 guest

发现新增了一个延迟队列类型 x-delayed-message:

在这里插入图片描述

延迟消息实现步骤

1. 创建一个延迟交换机

RabbitMQ 延迟插件允许我们使用一种特殊的交换机类型 x-delayed-message,可以设置延迟时间。

2. 发送延迟消息

通过设置消息属性中的 x-delay 来定义延迟时间。

3. 消费消息

消费者在消息到达指定的延迟时间后可以消费。

代码示例

1. 发送延迟消息的生产者代码
const amqp = require('amqplib');async function sendDelayedMessage() {const exchangeName = 'delayed_exchange';const routingKey = 'my_routing_key';const delayTime = 5000; // 延迟 5 秒// 连接到 RabbitMQ 服务器const connection = await amqp.connect('amqp://localhost');const channel = await connection.createChannel();// 声明延迟交换机await channel.assertExchange(exchangeName, 'x-delayed-message', {durable: true,arguments: {'x-delayed-type': 'direct', // 交换机的基础类型},});const message = 'Hello, this is a delayed message!';// 发送带有延迟的消息channel.publish(exchangeName, routingKey, Buffer.from(message), {headers: {'x-delay': delayTime, // 设置延迟时间},});console.log(`[x] Sent delayed message: "${message}" with delay: ${delayTime}ms`);// 关闭连接setTimeout(() => {connection.close();}, 1000);
}sendDelayedMessage().catch(console.error);
2. 消费延迟消息的消费者代码
const amqp = require('amqplib');async function consumeDelayedMessage() {const exchangeName = 'delayed_exchange';const queueName = 'delayed_queue';const routingKey = 'my_routing_key';// 连接到 RabbitMQ 服务器const connection = await amqp.connect('amqp://localhost');const channel = await connection.createChannel();// 声明队列并绑定到交换机await channel.assertQueue(queueName, { durable: true });await channel.bindQueue(queueName, exchangeName, routingKey);console.log('[*] Waiting for messages in delayed queue. To exit press CTRL+C');// 消费消息channel.consume(queueName, (msg) => {if (msg !== null) {console.log(`[x] Received delayed message: "${msg.content.toString()}"`);channel.ack(msg); // 手动确认消息}});
}consumeDelayedMessage().catch(console.error);
  1. 生产者部分

    • 使用 x-delayed-message 交换机,它允许消息在交换机中保留一段时间(通过 x-delay 属性),再发布到相应的队列。
    • 通过设置消息属性 headers: { 'x-delay': delayTime } 来指定延迟的时间。
  2. 消费者部分

    • 声明一个队列并将其绑定到延迟交换机,消费者从队列中接收消息。
    • 当消息的延迟时间到达后,消息被投递到队列并由消费者处理。

总结

使用延迟插件可以简化 RabbitMQ 中延迟消息的实现。

通过 x-delayed-message 交换机和 x-delay 属性,开发者可以灵活地控制消息的延迟发送时间。这种方式常用于需要延迟执行某些任务的场景,例如订单超时处理、延迟通知、预约外卖时延迟预约消息推送到商家等。

http://www.15wanjia.com/news/167606.html

相关文章:

  • 与众不同的网站wordpress插件禁用
  • 营销型网站的目标东莞网络公司 网站建设
  • 网站建设总结报告包装设计专业
  • 网站建设及维护专业开发公司复工复产工作方案
  • 如何加快百度收录网站宁夏电力建设工程公司外部网站
  • 冠辰网站建设网站怎么发布
  • 备案 网站名称涉及到行业竞价移动网站
  • 检察院做网站的目的别做网络推广员
  • 烟台建设集团网站国内做网站建设知名的公司
  • 网站长春网站建设怎样在阿里云做网站
  • 石家庄制作网站推广wordpress+社交链接
  • 高校校园网站建设与运行公司流程建设的意义
  • 网页制作工具的选择与网站整体风格是有关系的企业网站设计网站
  • 马鞍山网站建设 明达广州网站建设哪个公司做得好些
  • 网站建设合同英文模板下载wordpress云标签
  • 人员调动在网站上怎么做php学生管理系统源码免费
  • 公司网站制作需要多少钱mysql创建WordPress
  • 网站管理后台地址苏州网站建设主页
  • wordpress游戏网站主题个人安装公司怎么注册
  • 宁波网站建站公司商务网页设计与制作干嘛的
  • 网站制作公司北京wordpress id清空
  • 怎么建设网站首页电子商务网站建设与管理相关文献
  • 网站可不可以做自己的专利广西建设厅网站资质查询
  • 无锡seo网站排名优化wordpress 开源app
  • 毕业设计代做淘宝好还是网站好西丽网站建设
  • 邢台兼职网站有哪些?学做实体店网站
  • 网站备案网站简介网络与新媒体就业方向及前景
  • 如何做试玩类网站wordpress function
  • 手机网站开发 c黄骅港务局
  • 网站整体运营思路什么是asp网站