namespace Dpz.Core.MessageQueue.Abstractions;
/// <summary>
/// 批次追踪服务接口
/// </summary>
public interface IBatchTracker
{
/// <summary>
/// 记录批次中的消息被消费
/// </summary>
/// <param name="batchId">批次ID</param>
/// <param name="messageId">消息ID</param>
/// <returns></returns>
Task RecordMessageConsumedAsync(string batchId, string messageId);
/// <summary>
/// 检查批次是否完成
/// </summary>
/// <param name="batchId">批次ID</param>
/// <param name="expectedTotal">预期的消息总数</param>
/// <returns>是否完成</returns>
Task<bool> IsBatchCompletedAsync(string batchId, int expectedTotal);
/// <summary>
/// 获取批次的消费进度
/// </summary>
/// <param name="batchId">批次ID</param>
/// <returns>已消费的消息数</returns>
Task<int> GetBatchProgressAsync(string batchId);
/// <summary>
/// 清理批次记录
/// </summary>
/// <param name="batchId">批次ID</param>
/// <returns></returns>
Task CleanupBatchAsync(string batchId);
}
评论加载中...