我有一个由NServiceBus主机进程管理的MyMessageHandler。句柄将消息存储在数据库中。
有没有办法告诉NServiceBus主机进程并行启动MyMessageHandler进程/任务的多个实例,这样我们就可以增加消息吞吐量。
public class MyMessageHandler : IHandleMessages<MyMessage>
{
public void Handle(MyMessage message)
{
// Sync call store message into the database
}
}
答案就在这里 NServicebus - One endpoint multiple handlers threading
答案 0 :(得分:0)
对此的一个解决方案是利用可配置的MaximumConcurrencyLevel设置。 NServiceBus针对此功能的文档位于:http://docs.particular.net/nservicebus/msmq/transportconfig#configuration-failure-handling-amp-throttling
默认值为1.如果将MaximumConcurrencyLevel更改为5,NServiceBus将同时执行您的处理程序5次并将每个实例包装在其自己的DTC中以分别处理失败/成功。