コード例 #1
0
        /// <summary>
        /// 消息接收事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        private static void ConsumerOnReceived(object sender, BasicDeliverEventArgs args)
        {
            try
            {
                //消息属性
                IBasicProperties properties = args.BasicProperties;
                //获取消息
                byte[] body = args?.Body;


                if (body == null || body.Length == 0)
                {
                    NLogHelper.Warn($"接收到空消息");
                    return;
                }

                RMqMessage msg = new RMqMessage()
                {
                    Id           = Guid.NewGuid().ToString(),
                    ContentBytes = body,
                    CreateTime   = DateTime.Now
                };

                RMqMessageHandler.Add(msg);
            }
            catch (Exception e)
            {
                NLogHelper.Error($"mq处理消息失败:{e}");
            }
        }
コード例 #2
0
        /// <summary>
        /// 添加待处理的消息
        /// </summary>
        /// <param name="item"></param>
        public static void Add(RMqMessage item)
        {
            if (item == null)
            {
                return;
            }

            BlockingQueue.Add(item, abandonAction: AbandonMessageHandler);
        }
コード例 #3
0
 /// <summary>
 /// 单个消息处理
 /// </summary>
 /// <param name="message"></param>
 private static void SingleDataHandler(RMqMessage message)
 {
 }
コード例 #4
0
 /// <summary>
 /// 消息丢弃
 /// </summary>
 /// <param name="obj"></param>
 private static void AbandonMessageHandler(RMqMessage obj)
 {
     NLogHelper.Warn($"存在消息丢弃,消息id={obj.Id}");
 }