2

私は、データベースの変更をWebアプリケーションに通知するための最善の方法を見つけようとしています。私が今それをしている方法は、私がカウンターを備えた別個のMySQLテーブルを持っているということです。

これで、テーブルFooでデータベースアクションが発生すると、トリガーがカウンターを加算します。次に、Webアプリは5秒ごとにサーバーをポーリングして、何かが発生したかどうか(カウンター番号が変更されたかどうか)をチェックアウトし、発生した場合はアプリのデータを更新します。

私が望んでいるのは、MySQLからサーバーへ、そしてそこからWebアプリへのコールバック/通知を実行できるため、サーバーを頻繁にポーリングする必要がないことです。これはどういうわけか可能ですか?

4

2 に答える 2

0

Facebook、Gmailはどのようにリアルタイム通知を送信しますか? MySQLから直接アプリケーションに通知することはできませんが、帯域幅とサーバーの負荷を節約するための解決策がいくつかあります。

于 2012-09-01T20:52:50.460 に答える
0

これを処理する1つの方法は、オブザーバーパターンを自分で実装するか、pubsubメッセージングオプション(ZMQ / AMQ / RabbitMQ / Redisなど)を使用することです。最初のデータベースアクションが実行されたら(トランザクションがコミットされていることを確認してください)、公開します。 pubusbツールのトピックへのメッセージ-アプリケーションはpubsubツールにサブスクライブし、DBが変更されたときにメッセージを受信できます。

それが役に立てば幸い。

于 2012-09-01T23:38:04.627 に答える