using Dpz.Core.MessageQueue.Models;

namespace Dpz.Core.MessageQueue.Abstractions;

/// <summary>
/// Outbox 消息补发服务接口,负责将待重试的 Outbox 记录重新发布到消息队列。
/// </summary>
public interface IMessageOutboxRetryService
{
    /// <summary>
    /// 执行一轮 Outbox 补发,包含发布失败补发和消费失败重新入队。
    /// </summary>
    /// <param name="batchSize">本轮每类状态最多处理的消息数量。</param>
    /// <param name="cancellationToken">取消令牌。</param>
    /// <returns>本轮补发的处理结果。</returns>
    Task<MessageOutboxRetryResult> RetryAsync(
        int batchSize,
        CancellationToken cancellationToken = default
    );
}
评论加载中...