我有一個客戶是拋出一個異常,並用以下訂閱總線:MassTransit故障信息發佈兩次
ServiceBusFactory.New(sbc=>{
... removed for brevity...
sbc.Subscribe(s=>{
... removed for brevity...
var logger = LogManager.GetLogger("Faults");
s.Handler<IFault>(fault => logger.Error(JsonConvert.SerializeObject(fault)));
}
}
當一個異常被拋出5次,則前進到故障,我可以看到我的處理程序在兩個不同的線程中調用兩次。
我不知道爲什麼,我希望它只發生一次。
也許我正在以這種錯誤的方式去做。我希望能夠記錄發生的故障並能夠重新處理它們。 MassTransit或RabbitMQ是否有內置的功能來處理這個問題?最初我使用MSMQ,並自動拋出錯誤消息到一個相關的_error隊列,但我沒有看到與RabbitMQ隊列。
這是2.9.5還是之前的版本? –
Gist:https://gist.github.com/phatboyg/8428147 –
Chris:2.9.0,幾周前我從代碼中構建它。 –