Есть ли способ запустить несколько экземпляров дескриптора сообщения в NServiceBus
У меня есть MyMessageHandler, который управляется процессом хоста NServiceBus. Дескриптор сохраняет сообщение в базе данных.
Есть ли способ указать хост-процессу NServiceBus запускать несколько экземпляров процесса / задачи MyMessageHandler параллельно, чтобы мы могли увеличить пропускную способность сообщения.
public class MyMessageHandler : IHandleMessages<MyMessage>
{
public void Handle(MyMessage message)
{
// Sync call store message into the database
}
}
Ответ здесь NServicebus - потоковая обработка в нескольких конечных точках
1 ответ
Одним из решений этой проблемы было бы использование настраиваемого параметра MaximumConcurrencyLevel. Документация от NServiceBus для этой функции находится здесь: http://docs.particular.net/nservicebus/msmq/transportconfig
Значение по умолчанию равно 1. Если вы измените MaximumConcurrencyLevel на 5, NServiceBus будет одновременно выполнять ваш обработчик 5 раз и обертывать каждый экземпляр в свой собственный DTC для обработки отказов / успехов отдельно.