Rebus 失败消息会发生什么
What happens to Rebus failed messages
在旧版本的 Rebus 中,您可以控制错误队列。但是现在你在 azure servicebus extender 中只有一个 "inputQueue" 。如何控制错误队列?
Bus = Configure.With(_adapter)
.Transport(t => t.UseAzureServiceBus(ConnectionString, inputQueue /*, errorQueue */))
.Start();
更新:它们最终进入 "error" 队列。我现在在同一个(错误)队列中有来自不同来源的消息。那么,问题就变成了,rebus能不能过滤掉输入队列匹配自定义的消息属性rbs2-source-queue
?
错误queue仍然是可配置的!
你让我意识到这不是我在维基上提到的东西,so I just went and added it :)
配置要使用的错误 queue 的解决方案非常简单 - 检查一下:
Configure.With(...)
.Options(b => b.SimpleRetryStrategy(errorQueueAddress: "somewhere_else"))
.(...)
正如您正确发现的那样,rbs2-source-queue
header 揭示了消息在哪个输入 queue 中失败了太多次,因此它可以用于稍后过滤失败的消息在。但是,没有办法只接收那些在 header 中具有特定值的消息。
在旧版本的 Rebus 中,您可以控制错误队列。但是现在你在 azure servicebus extender 中只有一个 "inputQueue" 。如何控制错误队列?
Bus = Configure.With(_adapter)
.Transport(t => t.UseAzureServiceBus(ConnectionString, inputQueue /*, errorQueue */))
.Start();
更新:它们最终进入 "error" 队列。我现在在同一个(错误)队列中有来自不同来源的消息。那么,问题就变成了,rebus能不能过滤掉输入队列匹配自定义的消息属性rbs2-source-queue
?
错误queue仍然是可配置的!
你让我意识到这不是我在维基上提到的东西,so I just went and added it :)
配置要使用的错误 queue 的解决方案非常简单 - 检查一下:
Configure.With(...)
.Options(b => b.SimpleRetryStrategy(errorQueueAddress: "somewhere_else"))
.(...)
正如您正确发现的那样,rbs2-source-queue
header 揭示了消息在哪个输入 queue 中失败了太多次,因此它可以用于稍后过滤失败的消息在。但是,没有办法只接收那些在 header 中具有特定值的消息。