【发布时间】:2015-09-08 11:02:34
【问题描述】:
我有一些 RebusHandlers,例如:
public class CastleRebusHandler : IHandleMessages<CastleRebusMessage>
{
... (ctor injections from windsor)
public void Handle(CastleRebusMessage message)
{
var myPoco = _session.Get<MyPoco>(1);
myPoco.MethodThatRaiseDomainEvent();
}
}
MethodThatRaiseDomainEvent 方法将域事件添加到内部列表中,如 here 所述。
我在 NHibernate 中设置了一些 IPostUpdateEventListener,它将通过域事件集合运行并分派每个事件.我已经创建了一个类来控制 ISession 的 Rebus 在 BeforeMessage 和 AfterMessage 事件上。
在 Rebus 中 NHibernate = AfterMessage 的事件监听器中运行域调度事件代码(如链接中所述)。问题是如果这里发生异常怎么办?
如何将消息移动到 Rebus 的错误队列以发出失败信号?
我们使用的是0.83版本
肯
【问题讨论】:
-
Rebus 应该在 n 次尝试失败后将消息移动到错误队列(默认为 5 次)。可以按照此处github.com/rebus-org/Rebus/wiki/… 所示进行配置。如果发生异常,例如在您的处理程序中,则将其视为失败。
标签: c# nhibernate rebus