Соединение между API и сервисом с помощью MediatR ⇐ C#
-
Anonymous
Соединение между API и сервисом с помощью MediatR
В операционной системе Ubuntu у меня есть две службы, которые я написал на ядре asp.net, C#:
[*]API (с реагированием на стороне клиента), (управляется apache2) [*]Служба мониторинга (запускается как служба в /etc/systemd/system/monitor)
Мне бы хотелось, чтобы при входе пользователя в систему API обновлял монитор, в который вошел пользователь.
Я написал это, и у меня это не работает:
В общем проекте (проекты класса):
публичный класс Ping: INotification { } в API - в контроллере:
await _mediator.Publish(new Ping()); в API - в программе.cs:
builder.Services.AddMediatR(cfg => { cfg.RegisterServicesFromAssembly(typeof(AuthController).Assembly); }); в сервисе — в worker.cs:
публичный класс Worker: BackgroundService, INotificationHandler { общедоступный дескриптор задачи (уведомление Ping, CancellationToken cancelToken) { _logger.Info("Внутренний дескриптор Ping"); вернуть Задача.ЗавершеннаяЗадача; } } в сервисе — в program.cs:
Services.AddMediatR(cfg => { cfg.RegisterServicesFromAssembly(typeof(Worker).Assembly); }); и он все еще не работает. Пинг публикуется, но сервис его не получает или не распознает.
В операционной системе Ubuntu у меня есть две службы, которые я написал на ядре asp.net, C#:
[*]API (с реагированием на стороне клиента), (управляется apache2) [*]Служба мониторинга (запускается как служба в /etc/systemd/system/monitor)
Мне бы хотелось, чтобы при входе пользователя в систему API обновлял монитор, в который вошел пользователь.
Я написал это, и у меня это не работает:
В общем проекте (проекты класса):
публичный класс Ping: INotification { } в API - в контроллере:
await _mediator.Publish(new Ping()); в API - в программе.cs:
builder.Services.AddMediatR(cfg => { cfg.RegisterServicesFromAssembly(typeof(AuthController).Assembly); }); в сервисе — в worker.cs:
публичный класс Worker: BackgroundService, INotificationHandler { общедоступный дескриптор задачи (уведомление Ping, CancellationToken cancelToken) { _logger.Info("Внутренний дескриптор Ping"); вернуть Задача.ЗавершеннаяЗадача; } } в сервисе — в program.cs:
Services.AddMediatR(cfg => { cfg.RegisterServicesFromAssembly(typeof(Worker).Assembly); }); и он все еще не работает. Пинг публикуется, но сервис его не получает или не распознает.
Мобильная версия