using System; using System.Collections.Generic; using System.Linq.Expressions; using System.Text; using System.Threading.Tasks; namespace Pole.ReliableMessage.Storage.Abstraction { public interface IMessageStorage { /// /// /// /// /// Task Add(Message message); Task Delete(Expression> filter); /// /// /// /// /// /// Task> GetMany(Expression> filter, int count); /// /// /// /// /// /// Task GetOne(Expression> filter); /// /// 批量更新 /// 更新这几个值 MessageStatusId , RetryTimes LastRetryUTCTime, NextRetryUTCTime /// /// /// Task Save(IEnumerable messages); /// /// 检查 消息的状态,如果不是指定状态则返回true,并且更新状态到指定状态 ,如果已经是指定状态返回false /// /// /// /// Task CheckAndUpdateStatus(Expression> filter, MessageStatus messageStatus); Task UpdateStatus(Expression> filter, MessageStatus messageStatus); } }