/// <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}"); } }
/// <summary> /// 添加待处理的消息 /// </summary> /// <param name="item"></param> public static void Add(RMqMessage item) { if (item == null) { return; } BlockingQueue.Add(item, abandonAction: AbandonMessageHandler); }
/// <summary> /// 单个消息处理 /// </summary> /// <param name="message"></param> private static void SingleDataHandler(RMqMessage message) { }
/// <summary> /// 消息丢弃 /// </summary> /// <param name="obj"></param> private static void AbandonMessageHandler(RMqMessage obj) { NLogHelper.Warn($"存在消息丢弃,消息id={obj.Id}"); }