簡體   English   中英

MassTransit故障消息發布兩次

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM