using QYZH.InteractiveMagazine.Models.Dto.RabbitMQ;
using QYZH.InteractiveMagazine.Models.Entity;
namespace QYZH.InteractiveMagazine.IService;
///
/// MQ消息发布服务。
///
public interface IMessagePublishService : IBaseService
{
///
/// 可靠发布消息,默认写入Outbox。
///
Task PublishAsync(MessagePublishInput input, CancellationToken cancellationToken = default);
///
/// 批量可靠发布消息,默认写入Outbox。
///
Task PublishBatchAsync(IEnumerable> inputs, CancellationToken cancellationToken = default);
///
/// 直接发布消息,不写Outbox。
///
Task PublishDirectAsync(MessagePublishInput input, CancellationToken cancellationToken = default);
}