Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
NServiceBus消息处理程序和重试_Nservicebus - Fatal编程技术网

NServiceBus消息处理程序和重试

NServiceBus消息处理程序和重试,nservicebus,Nservicebus,我对NServiceBus有以下问题。 在hNServicebus中发生异常后,我记录到Application Insights。 如果错误不是暂时的,则每次重试都会重复日志,直到消息进入错误队列 在处理程序中有一种方法可以识别我是在第一次迭代中还是在一次重试中,而无需实现自定义代码 我已经看到有一个全局通知系统,但是我需要在处理程序级别使用它您可以检查消息头 立即重试: 延迟重试: 公共任务句柄(MyMessage消息,IMessageHandlerContext) { var numbe

我对
NServiceBus
有以下问题。 在h
NServicebus中发生异常后,我记录到Application Insights。
如果错误不是暂时的,则每次重试都会重复日志,直到消息进入错误队列

在处理程序中有一种方法可以识别我是在第一次迭代中还是在一次重试中,而无需实现自定义代码


我已经看到有一个全局通知系统,但是我需要在
处理程序级别使用它

您可以检查消息头

  • 立即重试:
  • 延迟重试:
公共任务句柄(MyMessage消息,IMessageHandlerContext)
{
var numberImmediateRetries=context.MessageHeaders[NServiceBus.Headers.ImmediateRetries];
var numberDelayedRetries=context.MessageHeaders[NServiceBus.Headers.DelayedRetries];

}

您好,我已经尝试过这个解决方案,但是在我的项目中,立即重试头总是空的,只有延迟重试头在消息被延迟重试时不是空的。我正在使用NServiceBus6。也许我在配置端点时遗漏了什么?无法通过标头跟踪即时重试,因为传输通常会回滚失败的消息并从传输中重新读取。这种方法不允许修改消息的标题。到目前为止,还不可能知道在将从传输接收此信息的可恢复性策略之外发生了多少次即时重试。