博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RabbitMQTutorials.02
阅读量:4486 次
发布时间:2019-06-08

本文共 2434 字,大约阅读时间需要 8 分钟。

using RabbitMQ.Client;using System;using System.Text;using System.Threading;namespace SampleStack.RabbitMQ.Producer{    class Program    {        static void Main(string[] args)        {            for (var i = 0; i < 1000; i++)            {                using (var connection = new ConnectionFactory() { HostName = "localhost" }.CreateConnection())                using (var channel = connection.CreateModel())                {                    channel.QueueDeclare(queue: "work_queue", durable: true, exclusive: false, autoDelete: false, arguments: null); // durable: true -> 队列持久性                    var properties = channel.CreateBasicProperties();                    properties.Persistent = true; // Persistent = true -> 消息持久性                    var message = i.ToString();                    Console.WriteLine(message);                    channel.BasicPublish(exchange: "", routingKey: "work_queue", basicProperties: properties, body: Encoding.UTF8.GetBytes(message));                }                Thread.Sleep(1000);            }        }    }}// Install-Package RabbitMQ.Client
using RabbitMQ.Client;using RabbitMQ.Client.Events;using System;using System.Text;using System.Threading;namespace SampleStack.RabbitMQ.Consumer{    class Program    {        static void Main(string[] args)        {            using (var connection = new ConnectionFactory() { HostName = "localhost" }.CreateConnection())            using (var channel = connection.CreateModel())            {                channel.QueueDeclare(queue: "work_queue", durable: true, exclusive: false, autoDelete: false, arguments: null); // durable: true -> 队列持久性                channel.BasicQos(prefetchSize: 0, prefetchCount: 1, global: false); // 告知RabbitMQ,在未收到当前Worker消息确认信号前,不再分发给消息,确保公平调度                var consumer = new EventingBasicConsumer(channel);                consumer.Received += (sender, e) =>                {                    var message = Encoding.UTF8.GetString(e.Body);                    Console.WriteLine(message);                    Thread.Sleep(1000);                    channel.BasicAck(deliveryTag: e.DeliveryTag, multiple: false); // 手动发送消息确认信号                };                channel.BasicConsume(queue: "work_queue", autoAck: false, consumer: consumer); // autoAck: false                Console.ReadKey();            }        }    }}// Install-Package RabbitMQ.Client

 

转载于:https://www.cnblogs.com/xiaowangzhi/p/11450799.html

你可能感兴趣的文章
020 RDD的理解
查看>>
【WebApi】————.net WebApi开发(二)
查看>>
Vector
查看>>
Linux Supervisor的安装与使用入门
查看>>
为什么要应用编排,应用编排能做什么?
查看>>
实习生招聘笔试
查看>>
Linux忘记root登录密码解决方法
查看>>
String类的常用方法
查看>>
week 13 java——网络
查看>>
python curl实现
查看>>
图片轮播,
查看>>
XSS跨站攻击
查看>>
C/C++ http协议加载sessionID
查看>>
个人应用开发详记. (二)
查看>>
一款由css3和jquery实现的卡面折叠式菜单
查看>>
uva 10791
查看>>
openlayers 4快速渲染管网模型数据
查看>>
MySQL相关小技巧
查看>>
SSH整合-&nbsp;2-&nbsp;add&nbsp;service&nbsp;layout
查看>>
IP地址与UInt之间不得不说的故事
查看>>