Подойдет ли NServiceBus или эквивалентный ESB для приложения, которое имеет кучу различных фоновых задач типа обслуживания? Например:
- Сканирование баз данных на наличие определенных слов в пользовательском контенте
- Обновление таблиц базы данных, в которых хранятся результаты относительно дорогостоящих запросов
- Создание/поддержание внешних индексов для контента
- Отправка уведомлений по электронной почте о запланированном событии.
Моя идея состоит в том, чтобы использовать какой-то планировщик задач (либо встроенный в Windows, либо Quartz.NET, либо мое собственное решение на основе базы данных) для периодической публикации различных сообщений на шину. Период может составлять от одной минуты до нескольких дней. Причина, по которой я хочу использовать шину, заключается в том, что я могу масштабировать количество подписчиков по мере того, как система становится больше и загруженнее, а задачи становятся либо более частыми, либо более ресурсоемкими. Это также обеспечило бы избыточность, если бы у меня всегда было хотя бы два работающих абонента.
Очевидной альтернативой этому было бы написание моей собственной службы Windows, которая запускается планировщиком и выполняет работу, но я чувствую, что сделать это за пределами одной машины и обеспечить отказоустойчивость может быть сложнее, чем использовать ESB в качестве этой сантехники. .
Это звучит как разумный подход? Альтернативные предложения?
ТИА