using System; using System.Collections.Generic; using System.Text; namespace Pole.ReliableMessage.Storage.Abstraction { public class Message : IComparable { /// /// 这里id 永远为 string /// public string Id { get; set; } /// /// 消息状态 /// public MessageStatus MessageStatus { get; set; } /// /// 消息状态Id /// public int MessageStatusId { get; set; } /// /// 预发送的时间 /// public DateTime AddedUTCTime { get; set; } /// /// 用来存放 消息内容 目前没有大小限制 这个需要根据 实际情况 , mongodb 和 rabiitmq 的 综合指标来定 ,开发人员 在使用超大对象时需谨慎 /// public string Content { get; set; } /// /// 消息的名称 用来鉴别不同的消息 /// public string MessageTypeId { get; set; } /// /// 当前消息 回调者所需参数值 /// public string RePushCallBackParameterValue { get; set; } ///// ///// 最后一次的重试时间 ///// //public DateTime LastRetryUTCTime { get; set; } /// /// 下一次的重试时间 /// public DateTime NextRetryUTCTime { get; set; } /// /// 重试次数 /// public int RetryTimes { get; set; } = 0; public int CompareTo(Message other) { return Id.CompareTo(other.Id); } } public class MessageIEqualityComparer : IEqualityComparer { public static MessageIEqualityComparer Default = new MessageIEqualityComparer(); public bool Equals(Message x, Message y) { return x.CompareTo(y) == 0; } public int GetHashCode(Message obj) { return obj.Id.GetHashCode(); } } }