NServiceBus-长时间运行的处理程序阻止队列处理任何其他消息



我正在运行NSB 5,我正在使用NHibernate Persistence,并且将MaximumConcurrentLevel设置为10。我有一个处理程序,它调用执行SSIS包的存储过程。这个程序包运行所花费的时间非常长。我开始注意到,每当处理这种特定的消息类型时,所有其他消息处理都会停止。我通过SQL Profiler注意到,NSB在后台对队列表进行的持续查询停止了,并且即使NSB只处理一条消息,也不会处理放入队列中的任何额外消息。

由于数据库命令需要很长时间才能完成,因此处理阻塞队列的处理程序时,是否存在任何指导原则或已知问题?

听起来好像有10个线程很忙,所以端点被阻塞了,你能测试一下吗?

我建议在自己的进程中托管此消息处理程序

有道理吗?

最新更新