是否可以说NSB将所有邮件头从命令邮件复制到回复? 默认情况下,NSB会复制自己的头文件NSwerviceBus。*,但不能自定义。
这是我的情况: 我有一个传奇和一组工人。 佐贺通过经销商向工人发送信息。 由于某些原因,工作人员无法处理某些消息。它没有失败,只是通过特定回复回复传奇:CannotProcessMessage。
我想要的是处理每个命令3次(Saga应该关联这个,而不是NSB重试机制)。我看到3个解决方案:
保存每条消息的尝试计数字典是SagaData。这个解决方案不是很好,因为在消息传递的情况下,sagadata会变得非常大
添加一个属性" AttemptCount"我的留言和回复。这会起作用,但会影响我的工人界面。工人不应该对尝试计数一无所知
添加" AttemptCount"命令和回复标题。它不会影响worker接口,但是我们必须从命令中复制这个头来回复worker。
所以,找到的第三个是最好的解决方案,但是无法找到一种方法来说NSB自动将标题从命令复制到回复。 它可以吗?或者也许你可以建议其他解决方案?
感谢。
答案 0 :(得分:1)
您可以使用消息mutators(或v5中的新行为管道)来执行该标头复制功能,将其打包在其自己的程序集中,然后将其作为每个worker的一部分进行部署。