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

网站忧化工作怎么样加气站类型的网站建设

网站忧化工作怎么样,加气站类型的网站建设,织梦旅游网站模板,网站建设方案的征求意见我们一般使用的是消费者作为被动方接收 RabbitMQ 推送消息,另一种是消费者作为主动方可以主动拉取消息。 RabbitMq 服务器推送消息分为隐式(自动)确认和显示确认。 1 消费者拉取消息 消费者作为主动方拉取消息,每次只能获取一条。 using (var channel c…

我们一般使用的是消费者作为被动方接收 RabbitMQ 推送消息,另一种是消费者作为主动方可以主动拉取消息。

RabbitMq 服务器推送消息分为隐式(自动)确认和显示确认。

1 消费者拉取消息

消费者作为主动方拉取消息,每次只能获取一条。

using (var channel = connection.CreateModel())
{BasicGetResult result = channel.BasicGet("PersistenceQueue", true);string message = Encoding.UTF8.GetString(result.Body.ToArray());Console.WriteLine($"拉取到消息:{message}");
}

2 RabbitMq服务器推送消息

消费者作为被动方接收RabbitMQ推送消息。

using (var channel = connection.CreateModel())
{EventingBasicConsumer consumer = new EventingBasicConsumer(channel);//就是Rabbitmq的服务器作为主动方---RabbitMq 推送消息到消费者来的;consumer.Received += (model, ea) =>{string message = Encoding.UTF8.GetString(ea.Body.ToArray());Console.WriteLine($"正常收到消息:{message}");};channel.BasicConsume(queue: "PersistenceQueue", autoAck: true, consumer: consumer);
}

3 隐式确认

当 RabbbitMQ 将消息发送给消费者后,消费者端接收到消息后,不等待消息处理结束,立即自动回送一个确认回执。

自动确认的用法十分简单,设置消费方法的参数 autoAck 为 true 即可,我们前边的例子都是使用的自动确认。

channel.BasicConsume(queue: "PersistenceQueue", autoAck: true, consumer: consumer);

4 显式确认

设置消费方法的参数 autoAck 为 false,channel.BasicAck可以一条一条确认后删除,也可使用 channel.BasicReject不删除。

//定义消费者                                      
EventingBasicConsumer consumer = new EventingBasicConsumer(channel);
int i = 0;
//就是Rabbitmq的服务器作为主动方---RabbitMq 推送消息到消费者来的;
consumer.Received += (model, ea) =>
{string message = Encoding.UTF8.GetString(ea.Body.ToArray());Console.WriteLine($"正常收到消息:{message}");if (i < 100){Console.WriteLine($"【{message}】消息已经被消费,同时从RabbitMQ服务器删除");channel.BasicAck(deliveryTag: ea.DeliveryTag, multiple: false);}else{Console.WriteLine($"【{message}】消息没有被正常消费,可以让消息不要删除");channel.BasicReject(deliveryTag: ea.DeliveryTag, requeue: true);//throw new Exception("消息消费异常了~");}i++;
};
//显式确认
channel.BasicConsume(queue: "PersistenceQueue", autoAck: false, consumer: consumer);

5 消息质量

channel.BasicQos可以设置每次从队列中取出几条消息进行消费。

channel.BasicQos(prefetchSize: 0, prefetchCount: 2, global: false);

方法中参数 prefetchSize 为预取的长度,一般设置为0即可,表示长度不限;

prefetchCount 表示预取的条数,即发送的最大消息条数;

global 表示是否在 Connection 中全局设置,true表示 Connetion 下的所有 channel 都设置为这个配置。

http://www.yayakq.cn/news/102914/

相关文章:

  • wordpress本地更换为网站域名kusanagi wordpress
  • 中国民航机场建设集团公司网站软文编辑器
  • 建网站 考虑wap建站程序哪个好
  • 爱站网站长工具北京关键词优化
  • 本地网站搭建教程优质的南昌网站设计
  • 蒙文网站建设的意义wordpress的音乐插件怎么用
  • 淄博做网站的新华路网站建设
  • 遵义城乡建设网站网站建设责任书
  • 网站建设与运营沈阳建站平台
  • 河北建站公司wordpress插件都是英文
  • wordpress网站管理插件网站推广服务网
  • 设计网站用什么语言婚纱摄影网站建站
  • 如何开发网站自己做站长深圳app开发网站建设
  • 汕头潮阳网站建设广告优化师的工作内容
  • 个人官方网站怎么建设晋江网站建设qzdzi
  • 图书馆网站开发策划书科技公司名字大全
  • 重庆商务网站建设成都app开发
  • 深圳平台网站开发黄山旅游网页设计作业
  • 纪检监察机关网站建设方案建设网站简单的需要多少天
  • 苏州建设教育协会网站可信的网站建设
  • 怎么做网站的思维导图软件工程师分类
  • 手机网站推广网站做数据分析的意义
  • 金融网站素材广州低价网站建设
  • 沈阳城市建设学院网站邹城住房城乡建设部网站
  • 鄂州正规网站建设app排版网站
  • 如何免费创建一个自己的网站如何查询网站点击率
  • 广州app制作优化型网站建设的基本要求
  • 江津做网站襄阳微信网站建设
  • 阿里云网站建设官方自营店wordpress 获取文章
  • 网站建设中图片尺寸自助网站模板平台