В рамках изменения нашего приложения от гигантского монолита до микрофона Мы разрабатываем Notification micro-service, который может использоваться всеми другими модулями для отправки уведомлений, таких как электронная почта, SMS , Push-уведомления и т. Д.AKKA.NET - Queuing and Retry
Один клиент этой службы уведомлений - это служба Windows, которую мы планируем разработать, которая запускает уведомления по электронной почте для различных событий, таких как Регистрация пользователя, Сброс пароля и т. Д. Служба окон будет иметь 2 части
API, основанный на REST, который может быть вызван такими модулями, как регистрация пользователей, для запуска уведомлений. Когда вызывается API-адрес ReST, эта служба будет загружать соответствующий шаблон, заполнять необходимые значения и вызывать службу уведомлений для отправки электронной почты. В случае, если вызов апи не удается, детали уведомлений направляются наземной задачи в задней, который будет повторять действия за определенное число раз, прежде чем давать и поднимая ошибку
Фоновая задача, которая будет, который будет повторять действие для фиксированного количества времени для отправки уведомления, прежде чем давать и поднимая ошибку
Наш первоначальный план был использовать очередь для обмена данными между двумя частями. Поток будет как этот
Client ->ReST API -> Загрузка шаблона и заполнить значения -> Вызов Notification Service -> Добавить сообщение в очередь (в случае уведомления не работают) -> назад земля задача вытягивает сообщение очереди -> действие повторных попыток -> Отметить уведомление как потерпевшее неудачу в случае неудачных попыток (которые будут приняты вручную
Вместо использования очереди другой подход заключается в использовании постоянных AKKA .NET для этого, так как AKKA.NET поддерживает почтовый ящик, но не нашел каких-либо аналогичных вариантов использования ... Мы на правильном пути, если мы выберем akka.net ... Пожалуйста, отправьте ur комментариев