SQLデータベースを呼び出すC#プログラムがあります。このプログラムを10回複製し、すべてのプログラムで同時にSQLデータベースを呼び出すようにします。これはどのように行われますか?
タイマー/ループでデータをプルしています。たとえば、プログラムAがプログラムBの前に実行された場合、更新時間は異なります。この更新を同期する方法はありますか?
SQLデータベースを呼び出すC#プログラムがあります。このプログラムを10回複製し、すべてのプログラムで同時にSQLデータベースを呼び出すようにします。これはどのように行われますか?
タイマー/ループでデータをプルしています。たとえば、プログラムAがプログラムBの前に実行された場合、更新時間は異なります。この更新を同期する方法はありますか?
中間者が必要です。つまり、デスクトップクライアントとDBの間にサービスを提供する必要があります。そのサービスには更新タイマーが含まれます。
これで、X秒ごとに、そのサービスにpingを実行して、更新時刻が変更されたかどうかを確認します。そして、クライアントがデータを要求するたびに、サービスのタイマーを更新します。したがって、更新するための残りの3分があると仮定します。すべてのクライアントはそれを知っていますが、プログラムAがそのタイマーを変更する何かを実行すると、他のpingがサービスに通知し、内部更新タイマーも変更します。
おそらく最も簡単な解決策は、1分ごとにDBを呼び出すことだと思います。すべてのクライアントが同じタイムサーバーを持っているので、時計を同期させる必要がありますか?
または、すべてのクライアントがソケットを介して接続するサーバーアプリケーションを使用したり、単純なHTTPリクエストを介してデータをプルしたりすることもできます。「更新コマンド」を取得すると、データベースにクエリを実行するだけです。
または、データベースにクエリを実行してデータをキャッシュするサーバーアプリケーションを作成します。そして、クライアントはキャッシュを照会するだけです。WCFで簡単に実装できます