新しいデータベース レコードが挿入されるたびにユーザーに通知する C# Windows クライアント アプリケーションを開発したいと考えています。サーバーは、データベース エンジンとして mysql を使用するリモート Linux マシンであり、PHP フロントエンドを備えています。私は C# の世界に慣れていないので、この問題にどのように対処できるかについてアドバイスをお願いします。ありがとうございました!
1 に答える
私は.NET用のMySQL APIに精通していませんが、ネットで簡単に検索しても、独自のポーリングロジックを実装するよりも良いものは何も見つかりませんでした.たとえば、このSOの質問:データベースが更新されるたびにC#クライアントを更新する.
このために、ポーリングする必要があるすべてのテーブルに DateTime 列を追加し、最後のポーリング時刻を保存することができます。これにより、最後のポーリング間隔以降に変更されたすべてのレコードを照会できるようになります。
クライアントの通知に関しては、ここで何らかのメッセージ フレームワークを使用することをお勧めします。同種の Microsoft 環境では、Microsoft Message Queue MSMQを使用することをお勧めします。(純粋な) MSMQ の優れた点は、その機能が .NET によってすぐにサポートされることです。使い方は簡単で、すぐに使い道を見つけることができます。
MSMQ の上に構築され、作業を楽にしたり、追加機能を提供したりするフレームワークは他にも多数あります。たとえば、オープン ソース プロジェクトMassTransitやNServiceBusなどです。Windows と Linux の両方のシステムを使用しているため、ほとんどの主要なオペレーティング システムをサポートするRabbitMQを確認する価値があります。
このようなメッセージング システムを使用する利点は、メッセージのパブリッシャーと受信者がお互いを知る必要がないようにアプリケーションを構成できることです。たとえば、相互にハードコードされた参照 (またはアドレス) を持つ必要はありません。
これにより、いつでもオンラインのクライアント数に関係なく、優れた柔軟性とスケーラビリティが得られます。