0

ユーザーがアイテムをデータベースに追加する ASP.NET Web サイトがあります。同じサーバー上にいくつかのサイトがあり、それぞれに独自のデータベースがあります。

データベースで各アイテムの状態をチェックするメカニズムを実装する必要があります。アイテムが未処理の場合は、サード パーティの Web サービスに送信します。

2 つのオプションが表示されます。

  1. コードを webapp に入れる
  2. コードを Windows サービスに入れる

最初のオプションには、コードが接続先のデータベースを認識しているという利点があります。

Windows サービスでは、すべてのデータベースを認識する必要があるため、保守が難しくなります。また、Windows サービスが 1 つしかない場合は、スレッドを使用して各データベースの項目を並行して処理する必要があります。

この2つ以外にも方法があるのではないでしょうか?

他にどのような問題がありますか?また、何をお勧めしますか? あなたの選択を説明してください。

4

2 に答える 2

1

これは、メッセージ キューが関与するのに適した場所のように思えます。各アイテムはメッセージにラップされ、キューに配置されます。「アイテム プロセッサ」(サービス?) はキューにサブスクライブし、到着した各アイテムを使用していくつかの作業を実行します。メッセージをキューに配置する方法はユーザー次第ですが、たとえば、各サイトで「新しいアイテム」メッセージをキューに発行することができます。

キューは、最初は少し難しい概念かもしれませんが、 MassTransitなどのフレームワークが役に立ちます。学ぶ価値があります。

于 2013-06-18T20:19:48.960 に答える
0

Windows サービスは、Web アプリと比較して適切なオプションであると思います。主な理由は、Web アプリは誰かが手動でトリガーする必要があるのに対し、Windows サービスは常に実行され、更新を確認できるからです。

既存のサイトの各コードにアクセスできる場合は、別のオプションがあります。サード パーティの Web サービスにデータを送信する Web サービスを作成してみませんか。次に、既存の各 Web サイトで、データベースに変更を保存するロジックを変更して、カスタム Web サービスにも変更をポストします (または、カスタム WS をスキップしてサード パーティに直接電話することもできます)。

于 2013-06-18T20:26:12.427 に答える