0

私は最近、Udi の Advanced SOA コースを受講し、SOA の導入のフェーズ 1 と呼ばれる段階にいます。

置き換えを開始している Windows サービスが多数あります。これらのサービスの 1 つは、電子メール アドレス (統合する必要がある外部システムによってインターフェイスとして使用される電子メール) をポーリングし、受信した電子メールを処理できない場合、サービスはユーザーに電子メールを送信して何かを知らせます。する必要があります。

私がよくわからないのは、これを置き換える最良の方法です。私が傾倒している解決策は、(最初は) NServiceBus ホストを使用して Windows サービスとしてインストールされる単一のプロセスに置き換えることです。これにより、Windows サービスが現在行っているようにポーリングが行われ、例外的な状況では、ユーザー通知メールを送信できるハンドラーに NServiceBus 経由で InvalidEmailReceived メッセージ (一方向、ファイア アンド フォーゲット) が送信されます。

私が検討したもう 1 つのオプションは、Windows サービスをそのままにして、送信専用の NServiceBus ref をセットアップすることです。次に、既存の (ただし変更された) Windows サービスから送信された InvalidEmailReceived メッセージを処理するためだけに存在する別の NServiceBus ホスト プロセスを作成します。

すべての励まし/批判は大歓迎です...

4

1 に答える 1

1

あなたの最初の解決策は理にかなっています.NServiceBusホストをWindowsサービスとして展開し、プロセスの開始時に開始するサガを持ち、タイムアウトを使用してポーリングを行うことができます.

ユーザーに通知を送信するコマンドを受け取り、それを実行する別のコンポーネント (最初は同じプロセス) 'emailSender' をデプロイできます。

Andreas の投稿http://andreasohlund.net/2012/06/07/sending-emails-using-nservicebus/をご覧ください。

于 2013-09-03T15:25:05.700 に答える