1. 新增数据库唯一约束和Message_Outbox表脚本 2. 新增雪花ID、Hangfire存储、MQ重试等配置实体 3. 重构各项目雪花ID生成逻辑,改为从配置读取WorkerId 4. 优化积分服务分页查询、用户背包更新逻辑 5. 新增JWT令牌Redis过期刷新逻辑 6. 完善RabbitMQ死信队列消息头信息 7. 新增可靠MQ消息发布服务和Outbox派发后台服务 8. 替换原有RabbitMQ直接发送为Outbox可靠发布 9. 优化签到服务逻辑,新增重复签到校验和补签卡扣减逻辑 10. 修复自动铺码消费逻辑,新增点阵页预占和释放机制
26 lines
942 B
C#
26 lines
942 B
C#
using QYZH.InteractiveMagazine.Models.Dto.RabbitMQ;
|
||
using QYZH.InteractiveMagazine.Models.Entity;
|
||
|
||
namespace QYZH.InteractiveMagazine.IService;
|
||
|
||
/// <summary>
|
||
/// MQ消息发布服务。
|
||
/// </summary>
|
||
public interface IMessagePublishService : IBaseService<MessageOutbox>
|
||
{
|
||
/// <summary>
|
||
/// 可靠发布消息,默认写入Outbox。
|
||
/// </summary>
|
||
Task<MessagePublishResult> PublishAsync<T>(MessagePublishInput<T> input, CancellationToken cancellationToken = default);
|
||
|
||
/// <summary>
|
||
/// 批量可靠发布消息,默认写入Outbox。
|
||
/// </summary>
|
||
Task<MessagePublishResult> PublishBatchAsync<T>(IEnumerable<MessagePublishInput<T>> inputs, CancellationToken cancellationToken = default);
|
||
|
||
/// <summary>
|
||
/// 直接发布消息,不写Outbox。
|
||
/// </summary>
|
||
Task<MessagePublishResult> PublishDirectAsync<T>(MessagePublishInput<T> input, CancellationToken cancellationToken = default);
|
||
}
|