RabbitMQ 官方demo1
public class RabbitMqSend
{
public static void Test()
{
var factory = new ConnectionFactory() { HostName = "localhost" };
using(var conn = factory.CreateConnection())
using(var channel = conn.CreateModel())
{
channel.QueueDeclare(queue: "hello", durable: true, exclusive: false, autoDelete: false, arguments: null);
//消息持久化,durable: true和.Persistent = true 2个都要设置
//durable: true-->needs to be applied to both the producer and consumer code.
var properties = channel.CreateBasicProperties();
properties.Persistent = true; string msg = "你好,老大!!!";
var body = Encoding.UTF8.GetBytes(msg);
channel.BasicPublish(exchange: "", routingKey: "hello", basicProperties: properties, body: body);
Console.WriteLine("[x] sent {0}", msg);
}
}
public class RabbitMqTest
{
public static void Test()
{
var factory = new ConnectionFactory() { HostName = "localhost" };
using (var connection = factory.CreateConnection())
using (var channel = connection.CreateModel())
{
//息持久化,durable: true
channel.QueueDeclare(queue: "hello",
durable: true,
exclusive: false,
autoDelete: false,
arguments: null);
var consumer = new EventingBasicConsumer(channel);
consumer.Received += (model, ea) =>
{
var body = ea.Body;
var msg = Encoding.UTF8.GetString(body);
Console.WriteLine("[x] received {0}", msg);
//发送确认消息,通知改消息处理完成,可以删除
channel.BasicAck(deliveryTag: ea.DeliveryTag, multiple: false);
};
//noAck = false 表示需求确认消息已经处理才在服务器中删除,进入下一个消息
channel.BasicConsume(queue: "hello", noAck: false, consumer: consumer);
}
}
/*
* Forgotten acknowledgment
It's a common mistake to miss the BasicAck. It's an easy error, but the consequences are serious.
Messages will be redelivered when your client quits (which may look like random redelivery),
but RabbitMQ will eat more and more memory as it won't be able to release any unacked messages. In order to debug this kind of mistake you can use rabbitmqctl to print the messages_unacknowledged field: $ sudo rabbitmqctl list_queues name messages_ready messages_unacknowledged
Listing queues ...
hello 0 0
...done.
*/
}
启动mq服务:rabbitmq-service.bat
RabbitMQ 官方demo1的更多相关文章
- RabbitMQ官方教程三 Publish/Subscribe(GOLANG语言实现)
RabbitMQ官方教程三 Publish/Subscribe(GOLANG语言实现) 在上一个教程中,我们创建了一个工作队列. 工作队列背后的假设是,每个任务都恰好交付给一个worker处理. 在这 ...
- RabbitMQ官方教程二 Work Queues(GOLANG语言实现)
RabbitMQ官方教程二 Work Queues(GOLANG语言实现) 在第一个教程中,我们编写了程序来发送和接收来自命名队列的消息. 在这一部分中,我们将创建一个工作队列,该队列将用于在多个wo ...
- RabbitMQ官方中文入门教程(PHP版) 第一部分:Hello World
RabbitMQ是一个消息代理.它的核心原理非常简单:接收和发送消息.你可以把它想像成一个邮局:你把信件放入邮箱,邮递员就会把信件投递到你的收件人处.在这个比喻中,RabbitMQ是一个邮箱.邮局.邮 ...
- RabbitMQ官方中文入门教程(PHP版) 第四部分:路由(Routing)
路由(Routing) 在前面的教程中,我们实现了一个简单的日志系统.可以把日志消息广播给多个接收者. 本篇教程中我们打算新增一个功能——使得它能够只订阅消息的一个字集.例如,我们只需要把严重的错误日 ...
- RabbitMQ官方中文入门教程(PHP版) 第三部分:发布/订阅(Publish/Subscribe)
发布/订阅 在上篇教程中,我们搭建了一个工作队列.每个任务之分发给一个工作者(worker).在本篇教程中,我们要做的之前完全不一样——分发一个消息给多个消费者(consumers).这种模式被称为“ ...
- RabbitMQ官方中文入门教程(PHP版) 第二部分:工作队列(Work queues)
工作队列 在第一篇教程中,我们已经写了一个从已知队列中发送和获取消息的程序.在这篇教程中,我们将创建一个工作队列(Work Queue),它会发送一些耗时的任务给多个工作者(Works ). 工作队列 ...
- rabbitmq官方的六种工作模式
1.RabbitMq1.1介绍RabbitMQ是一个消息代理:它接受并转发消息.你可以把它当成一个邮局:当你想邮寄信件的时候,你会把信件放在投递箱中,并确信邮递员最终会将信件送到收件人的手里.在这个例 ...
- RabbitMQ 官方NET教程(六)【RPC】
在第二个教程中,我们学习了如何使用Work Queues在多个工作者之间分配耗时的任务. 但是如果我们需要在远程计算机上运行功能并等待结果怎么办? 那是一个不同的模式. 此模式通常称为远程过程调用或R ...
- RabbitMQ 官方NET教程(五)【Topic】
在上一个教程中,我们改进了我们的日志记录系统.我们使用direct类型转发器,使得接收者有能力进行选择性的接收日志,,而非fanout那样,只能够无脑的转发 虽然使用direct类型改进了我们的系统, ...
随机推荐
- react项目构建
1.react脚手架 npm install -g create-react-app create-react-app myproject 2.页面配置(bootcdn) <script src ...
- easyui时间框只选择年月
html: <input type="text" id="datetime" > js: <script type="text/ja ...
- IIS7二级域名添加同一证书
IIS7二级域名添加同一证书, 先绑定第一个域名到443 ,之后的用以下命令行绑定 cd C:\Windows\System32\Inetsrv\appcmd set site /site.name: ...
- 关于vscode插件 的一些体验
一 vsCode git 首先vscode 继承了 git 在使用git前 先手动创建一个文件夹 用来clone已有项目 然后将 clone下来的项目放入工作区 右上角的小转转就是 pull文件 更 ...
- input 上报流程图
input 上报流程图 http://blog.chinaunix.net/uid-28320320-id-3389196.html
- 中国交建 WAF 基础平台 http://waf.ccccltd.cn/
中国交建 WAF 基础平台 http://waf.ccccltd.cn/
- jquery +ajax 上传加预览
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- String,下表和切片,分割
字符串介绍 1.字符串在内存中的存储 2.字符串的加法 3.字符串的格式化 1. 下标索引 所谓“下标”,就是编号,就好比超市中的存储柜的编号,通过这个编号就能找到相应的存储空间 字符串中" ...
- 启动Eclipse发生错误:An internal error occurred during: "Initializing Java Tooling".
问题描述 由于上一次关闭 Eclipse 时没有正常关闭,再次启动 Eclipse 时报错:An internal error occurred during: "Initializin ...
- 用 pdf.js兼容部分安卓显示PDF在线预览 时,a标签直接链接参数文件不能含中文的解决办法
例子: 项目部署在 Tomcat 上的: <a href="../generic/web/viewer.html?file=doc/register/要显示的文件.pdf" ...