![](/img/trans.png)
[英]How to configure MassTransit with Mediator to publish messages?
[英]MassTransit Fault messages publish twice
我有一個拋出異常的使用者和帶有以下訂閱的總線:
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中看到這些隊列。
我已經確認,如位於以下位置的要點所示:
https://gist.github.com/phatboyg/8428147
故障事件在使用者中連續五次失敗后僅發布一次。 這是來自NuGet的MT 2.9.5,使用RabbitMQ或MSMQ。
我不知道有關此問題的報道。 我會嘗試將其復制為一個簡單的案例,並將其放入郵件列表http://groups.google.com/group/masstransit-discuss或提交問題https://github.com/MassTransit/MassTransit/issues? state = open(帶有可重現案例)
我相信我已找到問題了……較早地嘗試記錄故障意味着要為每種特定的故障類型而不是IFault對象注冊一個處理程序。 其中一些交易所仍在RabbitMQ中注冊。 刪除這些可以解決問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.