コード例 #1
0
ファイル: ServiceFactory.cs プロジェクト: yyt2019/Materal
        /// <summary>
        /// 获得简单消费者服务
        /// </summary>
        /// <param name="exchangeName">交换机名称</param>
        /// <param name="queueName">队列名称</param>
        /// <param name="channelNumber">通道数量</param>
        /// <param name="Durable">持久化</param>
        /// <returns></returns>
        public ConsumingService GetSimplestConsumingService(string exchangeName, string queueName, int channelNumber = 1, bool Durable = false)
        {
            var config = new ConsumingConfig
            {
                Encoding       = Encoding.UTF8,
                ExchangeConfig = new ExchangeConfig {
                    ExchangeName = exchangeName
                },
                HostName    = _config.HostName,
                Port        = _config.Port,
                UserName    = _config.UserName,
                Password    = _config.Password,
                QueueConfig = new QueueConfig
                {
                    Durable   = Durable,
                    QueueName = queueName,
                },
                Timeout         = _config.Timeout,
                ChannelNumber   = channelNumber,
                MaxMessageCount = 1
            };

            return(new ConsumingService(config));
        }
コード例 #2
0
 /// <summary>
 /// 通道反注册
 /// </summary>
 /// <param name="channel">通道</param>
 /// <param name="send">对象</param>
 /// <param name="e">参数</param>
 /// <param name="config">配置</param>
 /// <returns></returns>
 private void Unregistered(IModel channel, object send, ConsumerEventArgs e, ConsumingConfig config)
 {
     Console.WriteLine($"通道反注册:{e.ConsumerTags}");
 }
コード例 #3
0
        /// <summary>
        /// 接收到消息
        /// </summary>
        /// <param name="channel">通道</param>
        /// <param name="body"></param>
        /// <param name="send">对象</param>
        /// <param name="e">参数</param>
        /// <param name="config">配置</param>
        /// <returns></returns>
        private void Received(IModel channel, ReadOnlyMemory <byte> body, object send, BasicDeliverEventArgs e, ConsumingConfig config)
        {
            var message = body.ToString();

            Console.WriteLine($"[{DateTime.Now:HH:mm:ss}]:{message}");
            channel.BasicAck(e.DeliveryTag, false);
        }
コード例 #4
0
 /// <summary>
 /// 通道关闭
 /// </summary>
 /// <param name="channel">通道</param>
 /// <param name="send">对象</param>
 /// <param name="e">参数</param>
 /// <param name="config">配置</param>
 /// <returns></returns>
 private async Task ShutdownAsync(IModel channel, object send, ShutdownEventArgs e, ConsumingConfig config)
 {
     await Task.Run(() =>
     {
         Console.WriteLine($"通道关闭:{e.ReplyText}");
     });
 }
コード例 #5
0
 /// <summary>
 /// 通道反注册
 /// </summary>
 /// <param name="channel">通道</param>
 /// <param name="send">对象</param>
 /// <param name="e">参数</param>
 /// <param name="config">配置</param>
 /// <returns></returns>
 private async Task UnregisteredAsync(IModel channel, object send, ConsumerEventArgs e, ConsumingConfig config)
 {
     await Task.Run(() =>
     {
         Console.WriteLine($"通道反注册:{e.ConsumerTags}");
     });
 }
コード例 #6
0
 /// <summary>
 /// 通道关闭
 /// </summary>
 /// <param name="channel">通道</param>
 /// <param name="send">对象</param>
 /// <param name="e">参数</param>
 /// <param name="config">配置</param>
 /// <returns></returns>
 private void Shutdown(IModel channel, object send, ShutdownEventArgs e, ConsumingConfig config)
 {
     Console.WriteLine($"通道关闭:{e.ReplyText}");
 }
コード例 #7
0
 public ConsumingService(ConsumingConfig config) : base(config)
 {
     _config = config;
 }
コード例 #8
0
        /// <summary>
        /// 接收到消息
        /// </summary>
        /// <param name="channel">通道</param>
        /// <param name="body"></param>
        /// <param name="send">对象</param>
        /// <param name="e">参数</param>
        /// <param name="config">配置</param>
        /// <returns></returns>
        private void Received(IModel channel, byte[] body, object send, BasicDeliverEventArgs e, ConsumingConfig config)
        {
            string message = config.Encoding.GetString(body);

            Console.WriteLine($"[{DateTime.Now:HH:mm:ss}]:{message}");
            channel.BasicAck(e.DeliveryTag, false);
        }