MyProject.Core
MyProject.Services.DataImporter
Myproject.Services.Cars
Myproject.Services.Cars2
Оба проекта DataImporter
и Cars
ссылаются на проект MyProject.Core. У меня есть событие (DataImportFinishedEvent
), которое генерируется службой DataImporter
. И Services.Cars
, и Services.Cars2
подписаны на это событие.
Когда событие запускается, я могу получить это событие в Services.Cars
, а после обработки события я не могу получить его в Services.Cars2
. Если я отключу Services.Cars
, я смогу успешно получить событие на Services.Cars2
.
Короче говоря, у меня не может быть нескольких подписчиков на одно событие, как только событие обработано, оно как будто больше не существует для других потребителей.
Не уверен, каким кодом я должен поделиться, но вот как мой обработчик событий и событий выглядит так.
public class DataImportFinishedEvent: Event
{
public string Data { get; set; }
}
public class DataImportFinishedEventHandler : IEventHandler<DataImportFinishedEvent> {
public Task Handle(DataImportFinishedEvent @event)
{
return Task.FromResult(true);
}
}
Если вам нужна дополнительная информация, я добавляю реализацию RabbitMQBus в обе службы (. net core)
services.AddSingleton<IEventBus, RabbitMQBus>(sp =>
{
var scopeFactory = sp.GetRequiredService<IServiceScopeFactory>();
return new RabbitMQBus(sp.GetService<IMediator>(), scopeFactory);
});
Пожалуйста, позвольте я знаю, нужна ли вам дополнительная информация из реализации RabbitMQBus
.