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