Как мне объединить обработку связанных событий в NServiceBus?

#nservicebus #publish-subscribe

#nservicebus #опубликовать-подписаться

Вопрос:

У меня ситуация, когда у меня есть служба, подписывающаяся на сообщения о событиях и выполняющая некоторую работу, когда они поступают. Существует определенный класс событий, которые могут поступать короткими очередями из множества событий, ссылающихся на одни и те же базовые данные. Я хотел бы иметь возможность отложить обработку связанных событий на короткий период времени, чтобы я выполнял вычисление только один раз для каждого пакета связанных событий, а не в ответ на каждое отдельное событие. Есть ли какой-то шаблон, которому я могу следовать, который позволит мне собирать связанные события в течение определенного периода времени, а затем обрабатывать их все сразу? Я думал, что saga timeout может быть в состоянии достичь этого, но не уверен, подходит ли это для этого.

Спасибо!

Ответ №1:

Да, saga может быть подходящим вариантом — однако рассмотрите производительность сохраняемости saga (NHibernate через DB в текущей версии, RavenDB в следующей версии) по сравнению с вашими потребностями в отказоустойчивости (если компьютер выйдет из строя, допустимо ли потерять некоторые сообщения).

Боюсь, простых ответов нет.