2016-11-02 7 views
0

私は、ローカルネットワークのユーザーに、データベースの「レコード」が変更されたときに通知を受けるアプリケーションに取り組んでいます。したがって、人物Aがレコード1を変更し、人物Bがレコード1を表示すると、レコード1が変更されたことを人Bに通知します。 現在、WCFサービスを通じてこれらの通知を送信するために、「二重」サービスと呼ばれるものを使用しています。サービスはやや遅く理想的には削除したいと考えています。別のユーザーがデータベースを更新したときに、ユーザーがリアルタイムにデータを保持する方法はありますか?C#WPFアプリケーションとSQL Serverの間でデータを同期させる方法は何ですか?

+0

データベースを監査しているようです。リアルタイムでの監査ですか?タイマーのポーリングです。通知の遅延には多くの要因があります。ボトルネックがどこに潜んでいるかを知ることができます。 –

+0

私はあなたのシステムの現在の設計に依存していると思います。すべてのアプリケーションが同じWCFサービスに接続しますか?このサービスは、更新されたときにすべてのアプリケーションに通知を送信しますか?それは複雑なようです。 –

+0

すべてのアプリケーションが同じサービスに接続します。データベース内の何かが変更されたときにサービスがイベントを発生させた後、そのイベントをリッスンする各クライアントに変更が通知されます。それは確かに非常に複雑です! –

答えて

0

通知サービスを置き換える予定がある場合は、SignalRを使用してクライアントとDBの同期を維持することをお勧めします。

0

私は一度同様の問題を抱え、Firesharpライブラリを持つFirebaseというNoSqlクラウドソリューションにクロスオーバーしました。 Firebase - Features,Firesharp

非常に高速で、実際には使いやすいです。したがって、アプリケーションがまだまだ小さく、NoSqlセットアップに移行するビジネスリスクが小さい場合は、価値のあるソリューションになる可能性があります。

+0

ご返信ありがとうございます。残念ながら、これは巨大なアプリケーションなので、私はこれが私たちの状況ではうまくいかないと思います。 –

0

レコードを表示するのにどれくらいの時間がかかりますか? 値が変更されたかどうかを確認するメカニズムは何ですか? どのような種類のクライアントアプリケーションを使用していますか?

データベースを照会するnodejsサーバーに対して、ユーザーが使用しているアイテムのステータスを検証する非同期メソッドを作成し、特定のレコードに対して値を返信し、非同期メソッドが現在の値がDBからの値と異なる場合、ユーザーに通知したり、レコードを更新したりすることができます。 これはフットプリントが小さく、より効率的に動作するはずです。

関連する問題