0
我讀過每個消息處理程序都包含在「環境事務」中,並且在可能的情況下,該數據庫訪問會自動列入該事務中。 NServiceBus是否對該事務做了其他事情?具體來說,我想知道是否可以以某種方式取消處理程序在發生異常時發送/發佈的任何消息。在處理程序中發送/發佈的消息發生異常時會發生什麼情況?
在下面的代碼中,總線在調用Send方法後立即發送ArchiveMessage,還是排隊並只在處理程序成功執行時發送它?
public class BadHandler
{
public IBus Bus { get; set; }
public void Handle(MyMessage msg)
{
Bus.Send(new ArchiveMessage(msg.MessageId)); //does this message send?
throw new Exception("Something terrible happened, maybe my database connection failed!");
}
}
謝謝!我一直在做複雜的東西,以避免調用發送/發佈,直到我的數據庫的東西提交後,很高興知道NServiceBus足夠智能/複雜,足以做出正確的事情發生異常。再次感謝你的信息! – smalltowndev