using System; using System.Collections.Generic; using System.Text; using System.Threading; using System.Threading.Tasks; namespace Pole.EventBus.EventStorage { public interface IEventStorage { Task ChangePublishStateAsync(EventEntity message, EventStatus state); Task ChangePublishStateAsync(IEnumerable messages); Task BulkChangePublishStateAsync(IEnumerable events); Task StoreMessage(EventEntity eventEntity, object dbTransaction = null); Task DeleteExpiresAsync(string table, DateTime timeout, int batchCount = 1000, CancellationToken token = default); Task> GetMessagesOfNeedRetry(); } }