IMessagePublisher.cs 821 Bytes
namespace Rcs.Application.MessageBus;

/// <summary>
/// 消息发布者接口
/// </summary>
public interface IMessagePublisher
{
    /// <summary>
    /// 发布消息
    /// </summary>
    /// <typeparam name="T">消息类型</typeparam>
    /// <param name="message">消息</param>
    /// <param name="cancellationToken">取消令牌</param>
    Task PublishAsync<T>(T message, CancellationToken cancellationToken = default) where T : class, IMessage;

    /// <summary>
    /// 批量发布消息
    /// </summary>
    /// <typeparam name="T">消息类型</typeparam>
    /// <param name="messages">消息列表</param>
    /// <param name="cancellationToken">取消令牌</param>
    Task PublishBatchAsync<T>(IEnumerable<T> messages, CancellationToken cancellationToken = default) where T : class, IMessage;
}