0

わかりました、私が働いている工場で同様のチケット システムを作成するタスクが与えられました。このシステムでは、オペレーターがチケットのように生成し、データベースに保存され、エンジニアに送信されて処理されます。データベースは、仮想サーバー上で実行されている MS SQL データベースです。各ユーザーには、WPF で開発されたクライアント デスクトップ アプリがあります。

エンジニアへのアラートを突き刺す方法に行き詰まっています。チケットが生成されると、データベースに保存され、メッセージまたは何かをエンジニアに送信する必要があります。これまでのところ、使用できるものについて次の考えを思いつきました。

  • Webservice - クライアントはこれに接続します。これは、データベースと通信し、チケット メッセージをエンジニアに中継するために使用されます。
  • Windows サービス - 上記と同じですが、Windows サービスですか? メリットはありますか?
  • データベースのポーリング - エンジニア用のクライアント ソフトウェアは、2 分ごとにデータベースを継続的にポーリングし、新しく生成されたチケットをチェックします。見つかった場合は、ユーザーに通知されます。

データベースのポーリングはおそらく実装が最も簡単ですが、遅延のために実際には稼働していません。一度に約 30 人が接続されるため、2 分の遅延について言及しましたが、そのうちの 12 人はエンジニアであり、12 のクライアント プログラムが継続的にポーリングを行うとサーバーのパフォーマンスに影響するかどうかはわかりませんでした。

アドバイスは素晴らしいでしょう、または誰かがより良い方法を知っていれば。

4

1 に答える 1

2

ポーリングを使用したくない場合 (30 人のユーザーでは問題にならない) の方法は、サーバーからクライアントにイベントを送り返すことを可能にするコールバック コントラクトを備えた WCF サービスです。

例: WCF コールバック

于 2013-04-15T11:48:03.273 に答える