0

我最近参加了 Udi 的高级 SOA 课程,目前正处于介绍 SOA 的第 1 阶段。

我们有许多我开始替换的 Windows 服务。其中一项服务会轮询电子邮件地址(电子邮件用作我们必须与之集成的外部系统的接口),有时当我们无法处理收到的电子邮件时,该服务会向用户发送一封电子邮件,让他们知道一些事情需要完成。

我不太确定是替换它的最佳方法。我倾向于的解决方案只是将其替换为(最初)使用 NServiceBus 主机作为 Windows 服务安装的单个进程。这将像 Windows 服务当前所做的那样进行轮询,并且在特殊情况下会通过 NServiceBus 向可以发送用户通知电子邮件的处理程序发送 InvalidEmailReceived 消息(一种方式,即触发并忘记)。

我考虑过但感觉不对的另一个选择是保留 Windows 服务,但设置一个 NServiceBus 参考仅用于发送。然后创建一个单独的 NServiceBus 主机进程,该进程仅用于处理从现有(但已修改)Windows 服务发送的 InvalidEmailReceived 消息。

非常感谢所有鼓励/批评...

4

1 回答 1

1

您的第一个解决方案是有道理的,您可以将 NServiceBus 主机部署为 Windows 服务,在进程启动时启动一个传奇,使用超时进行轮询。

您可以部署另一个组件(最初在同一进程中)“emailSender”,它接收命令以向用户发送通知并执行它。

看看 Andreas 的帖子http://andreasohlund.net/2012/06/07/sending-emails-using-nservicebus/

于 2013-09-03T15:25:05.700 回答