修改发布方式
continuous-integration/drone/push Build is passing Details

IRC_NewDev
hang 2024-10-21 11:46:35 +08:00
parent 391bf568cb
commit 5e79baa232
1 changed files with 2 additions and 2 deletions

View File

@ -14,7 +14,7 @@ namespace IRaCIS.Core.Infra.EFCore.Interceptor
// 发件箱模式参考: https://dev.to/antonmartyniuk/use-masstransit-to-implement-outbox-pattern-with-ef-core-and-mongodb-oep#:~:text=MongoDB%20replica%20set%20is%20required%20for%20both%20publisher%20and%20consumer
// 1、IPublishEndpoint 才会将事件存储到发件箱表中, 高级IBus接口时 - 消息不会存储在发件箱中必须有savechanges 才会一起提交保存到数据库中
// 2、进入消息代理之前发布事件在OutboxState OutboxMessage 进入消费者以后已经删除OutboxState OutboxMessage消费失败需要修改代码重新发布然后之前消费事件的重新处理错误处理参考https://www.youtube.com/watch?v=3TMKUu7c4lc
public class DispatchDomainEventsInterceptor(IMediator _mediator, IMessageScheduler _scheduler/*, IPublishEndpoint _publishEndpoint*/) : SaveChangesInterceptor
public class DispatchDomainEventsInterceptor(/*IMediator _mediator,*/ IMessageScheduler _scheduler, IPublishEndpoint _publishEndpoint) : SaveChangesInterceptor
{
//领域事件通常与数据变更密切相关。如果在 SaveChanges 之前发布事件,有可能事件发布时的数据状态还没有被持久化到数据库。这可能导致事件消费者看到的是一个不一致的状态
@ -64,7 +64,7 @@ namespace IRaCIS.Core.Infra.EFCore.Interceptor
await _scheduler.SchedulePublish(DateTime.Now.AddSeconds((int)domainEvent.DelaySeconds!), (object)domainEvent);
}
await _mediator.Publish(domainEvent.GetType(), domainEvent);
await _publishEndpoint.Publish(domainEvent.GetType(), domainEvent);
}
}