rabbitmq for C#的异步消息确认机制
代码:
using (var conn = RabbitmqHelper.GetConnection())
{
using (var channel = conn.CreateModel())
{
//这两个事件如果是using写法要写到创建交换器和队列并且进行绑定之前,否则不会触发
channel.BasicNacks += (sender, e) =>
{
//生产者发送消息到broker(服务器)后失败被生产者的listener监听到,就走无应答方法
Console.WriteLine(" --no ack-- ");
}; channel.BasicAcks += (sender, e) =>
{
//有应答
Console.WriteLine(" --ack-- ");
}; channel.ExchangeDeclare("log_topic", ExchangeType.Topic);
var msg = $"send {(args.Length == 0 ? "default" : args[0] ?? "default")} topic message";
var body = Encoding.UTF8.GetBytes(msg);
channel.ConfirmSelect();//不管是串行还是并行,都要加入声明确认这句话
channel.BasicPublish("log_topic", (args.Length < ? "#" : args[] ?? "#"), null, body);
Console.WriteLine(" [x] Sent {0}", msg);
//串行的写法
//if (channel.WaitForConfirms())
//{
// Console.WriteLine("[x] Sent success");
//}
//else
//{
// Console.WriteLine("[x] Sent faild");
//}
Console.WriteLine(" Press [enter] to exit.");
Console.ReadLine();
}
}
更多应答出现的问题:
https://blog.csdn.net/youbl/article/details/80425959
rabbitmq for C#的异步消息确认机制的更多相关文章
- 消息队列RabbitMQ(三):消息确认机制
引言 RabbitMQ的模型是生产者发送信息到 Broker (代理),消费者从 Broker 中取出信息.但是生产者怎么知道消息是否真的发送到 Broker 中了呢?Broker 又怎么知道消息到底 ...
- SpringBoot 整合 RabbitMQ(包含三种消息确认机制以及消费端限流)
目录 说明 生产端 消费端 说明 本文 SpringBoot 与 RabbitMQ 进行整合的时候,包含了三种消息的确认模式,如果查询详细的确认模式设置,请阅读:RabbitMQ的三种消息确认模式 同 ...
- RabbitMQ (十二) 消息确认机制 - 发布者确认
消费者确认解决的问题是确认消息是否被消费者"成功消费". 它有个前提条件,那就是生产者发布的消息已经"成功"发送出去了. 因此还需要一个机制来告诉生产者,你发送 ...
- RabbitMQ学习笔记之五种模式及消息确认机制
本文详细介绍简单模式Simple.工作模式Work.发布订阅模式Publish/Subscribe.Topic.Routing. Maven依赖引用 <dependencies> < ...
- SpringBoot(九)RabbitMQ安装及配置和使用,消息确认机制
Windows下RabbitMQ安装及配置地址: https://blog.csdn.net/zhm3023/article/details/82217222RabbitMQ(四)订阅模式:https ...
- RabbitMQ消息确认机制
文章目录 1. 事务机制2. Confirm模式2.1 生产者2.1.1 普通Confirm模式2.1.2 批量Confirm模式2.1.3 异步Confirm模式2.2 消费者3. 其他 消费者如何 ...
- Rabbitmq可靠消息投递,消息确认机制
前言 我们知道,消息从发送到签收的整个过程是 Producer-->Broker/Exchange-->Broker/Queue-->Consumer,因此如果只是要保证消息的可靠投 ...
- RabbitMQ 消息确认机制
消息确认机制 在之前异常处理部分就已经写了,对于consumer的异常退出导致消息丢失,可以时候consumer的消息确认机制.重复的就不说了,这里说一些不一样的. consumer的消息确认机制 当 ...
- (转)RabbitMQ消息队列(九):Publisher的消息确认机制
在前面的文章中提到了queue和consumer之间的消息确认机制:通过设置ack.那么Publisher能不到知道他post的Message有没有到达queue,甚至更近一步,是否被某个Consum ...
随机推荐
- 机器学习实战笔记-2-kNN近邻算法
# k-近邻算法(kNN) 本质是(提取样本集中特征最相似数据(最近邻)的k个分类标签). K-近邻算法的优缺点 例 优点:精度高,对异常值不敏感,无数据输入假定: 缺点:计算复杂度高,空间复杂度高: ...
- IOS-问题整理
安装包相关 安装包无法打开 通用中点击验证应用无反应 卸载-删除证书-重装
- java_第一年_JDBC(3)
事务 我们在通过JDBC连接数据库并开始交互时,默认情况下是自动提交的,有时由于为了保持业务流程的完整性.提高性能或是使用分布式事务,需要启动支持事务,此时的方法是调用Connection对象的set ...
- POJ 1438 One-way Traffic (混合图+边双连通)
<题目链接> 题目大意: 给定一个混合图,问你在能够使得图中所有点能够两两到达的情况下,尽可能多的将无向边变成有向边,输出这些无向边的变化方案. 解题分析:这与之前做过的这道题非常类似 P ...
- 构建自己的AngularJS,第一部分:作用域和digest 转摘:http://www.ituring.com.cn/article/39865
构建自己的AngularJS,第一部分:Scope和Digest 原文链接:http://teropa.info/blog/2013/11/03/make-your-own-angular-part- ...
- RabbitMQ ——与Spring集成及exchange的direct、topic方式实现和简单队列实现
程序整体结构 Maven依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http: ...
- Tesseract-OCR识别中文与训练字库
转自:https://www.cnblogs.com/lcawen/articles/7040005.html 关于中文的识别,效果比较好而且开源的应该就是Tesseract-OCR了,所以自己亲身试 ...
- Checklist: 2019 05.01 ~ 06.30
Golang Lessons learned porting 50k loc from Java to Go Five things that make Go fast Simple techniqu ...
- shortcut to add throws declaration in Intellij Idea
When a piece of code needs error handling, IntelliJ underlines it with red. Set your pointer on that ...
- EXCUTE JAVAScript点击事件
# Execute Javascript document.getElementsByClassName('chooseFile')[${index}].arguments[0].click(); # ...