Beispiel #1
0
        public void Purge(string remoteQueueName)
        {
            using (var advancedBus = RabbitHutch.CreateBus(_connectionString).Advanced)
            {
                var existingQueue = new EasyNetQ.Topology.Queue(remoteQueueName, false);

                advancedBus.QueuePurge(existingQueue);
            }
        }
Beispiel #2
0
        /// <summary>
        /// 入口
        /// </summary>
        /// <param name="args">参数</param>
        static void Main(string[] args)
        {
            var bus = RabbitHutch.CreateBus("host=localhost;username=dxq;password=dxq");

            //接收简单消息
            bus.Subscribe <MyTextMessage>("EasyNetMQ.Receiver.MyTextMessage", x =>
            {
                Console.WriteLine($"接收了MyTextMessage消息:{x.Text}");
            });

            //接收Topic消息
            bus.Subscribe <string>("EasyNetMQ.Receiver.TopicMyTextMessage", x =>
            {
                var message = JsonConvert.DeserializeObject <MyTextMessage>(x);
                Console.WriteLine($"接收了Topic消息:{message.Text}");
            }, o =>
            {
                o.WithTopic(typeof(MyTextMessage).FullName);
            });

            //接收高级消息
            var queue    = bus.Advanced.QueueDeclare("EasyNetMQ.Receiver.AdvanceMyTextMessage");
            var exchange = bus.Advanced.ExchangeDeclare("EasyNetMQ.Exchange", ExchangeType.Topic);

            bus.Advanced.Bind(exchange, queue, routingKey: typeof(MyTextMessage).Name);
            bus.Advanced.Consume <string>(queue, (message, info) =>
            {
                throw new Exception("处理消息时发送了错误");
                //Console.WriteLine($"接收了高级消息:{message.Body}");
            });

            var errorqueue = new EasyNetQ.Topology.Queue("EasyNetQ_Default_Error_Queue", isExclusive: false);

            bus.Advanced.Consume <Error>(errorqueue, (message, info) =>
            {
                Console.WriteLine($"接收了处理时发生异常的消息:{message.Body.Message}");
            });

            Console.WriteLine("按任意键退出");
            Console.ReadKey();
            bus.Dispose();
        }
        public List <Model.Queue> PopulateMessageCounts(List <Model.Queue> deliveryQueues)
        {
            try
            {
                using (var advancedBus = RabbitHutch.CreateBus(_connectionString).Advanced)
                {
                    foreach (var queue in deliveryQueues)
                    {
                        var existingQueue = new EasyNetQ.Topology.Queue(queue.Name, false);

                        queue.MessageCount = advancedBus.MessageCount(existingQueue);
                    }
                }
                return(deliveryQueues);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }