问题描述
我有以下情况: 我使用 NServiceBus 的应用程序必须与通常不可用的远程 MSsql Server 一起使用,因此应用程序在一段时间后会失败。 有没有办法使用 NServiceBus 拦截该事件并在应用程序关闭之前发送电子邮件(或执行任何其他操作)?
解决方法
NServiceBus 有一些选择,但也有一些警告
- NServiceBus 可以“捕获”异常、重试消息并通知您其状态。但这只会发生在传入的消息上。换句话说,没有消息就意味着没有通知。
- 您可以使用心跳和/或自定义检查
- 这取决于您,但是使用用于监控此类事件的适当软件难道不是一种选择吗?
我假设您没有使用远程 SQL Server 作为传输方式,因为这会使事情变得更加困难。
当某些事情失败时,消息会被重试。 NServiceBus 不知道错误的严重程度等,但您可以处理即时、延迟和失败的通知。 Documentation can be found here。
您还可以使用心跳来查看 NServiceBus 端点是否仍处于活动状态,或编写自定义检查。更多信息在这里: