У меня есть служба Windows, которая контролирует несколько почтовых ящиков на наличие новой почты.После получения новой почты служба отвечает за определение того, что с ней делать.Он может либо проанализировать его и ввести в базу данных, либо проигнорировать, либо переслать кому-либо, если он его не распознает.
У меня уже есть работающая реализация, если / когда наш почтовый сервер выходит из строя там, гдеСлужба будет пытаться переподключаться каждые n минут до успешного завершения.Другая проблема заключается в том, что произойдет, если / когда сервер базы данных выйдет из строя.Наш сервис вполне мог бы по-прежнему работать и анализировать электронную почту, но остановился бы, если вставка базы данных не удалась.
Как мне справиться с отключением базы данных?Вместо того, чтобы мой сервис отвечал за взаимодействие с базой данных, я использую систему обмена сообщениями, такую как NServiceBus, и отправляю сообщения для каждого нового элемента, который необходимо добавить.Тогда этот сервис попытается обработать его.Если по какой-либо причине обработка не удалась (скорее всего, база данных не работает), просто оставьте элемент в очереди для последующей обработки?