NServiceBus命令处理程序一次又一次地被触发

时间:2015-09-15 12:38:33

标签: nservicebus

我有一个NserviceBus命令的处理程序,在它的处理程序中,我们有一个正在读取xml的进程,但这需要时间。所以现在发生的事情是,正在读取xml的时间,命令处理程序再次激活,它会触发我配置为最大重试次数的次数,在这种情况下为5。

这是一些代码: -

class SendHandler :
    IHandleMessages<SendCommand>
{ 
public SendHandler()
    {
        ------some code
    }


    public void Handle(SendCommand message)
    {   *1   
          -----there is some code which is taking time
          -----the line number (*1) is fired again and again by the time processing takes place
}

请帮忙。

2 个答案:

答案 0 :(得分:2)

检查您的第一级和第二级重试设置(FLR/SLR 正如评论中所建议的那样,尝试队列中的单个命令消息。 如果处理程序未完成XML处理,请检查它是否超过默认transaction timeout。如果是这样,请查看您使用处理程序的方法,因为您可能需要一个较长的(正在)运行的进程。

答案 1 :(得分:0)

据我所知,您无法在消息级别指定FLR / SLR设置。它们只能在端点级别指定。如果端点正在处理不同的消息,则最好根据消息SLA对它们进行分组。因此,将具有不同SLA的消息类型分离到不同的端点。你可以在这里发布你的用例在Google网上论坛中的内容:https://groups.google.com/forum/#!forum/particularsoftware我们可以加入吗?谢谢。