Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Posłuchaj zmian w bazie danych w MySQL

Cóż, nie jest całkowicie niemożliwe powiadamianie klientów o zmianach dokonanych w bazie danych, chociaż nie ma na to wbudowanego rozwiązania.

W mysql możesz tworzyć skompilowane funkcje zdefiniowane przez użytkownika (UDF) w C/C++. Mogą one rozszerzyć funkcjonalność mysql w dowolny sposób - na przykład wysyłanie wiadomości przez sieć. Możesz stworzyć własny UDF lub skorzystać z bibliotek dostępnych na mysqludf.org do wysyłania wiadomości przez sieć. Możesz zacząć od użycia biblioteki STOMP na mysqludf.org do wysłania STOMP wiadomości. Ponieważ STOMP jest niezależny od języka, można go używać również ze środowiska .NET, patrz ten temat SO (jeśli wyszukasz w Internecie serwer .net STOMP, znajdziesz więcej przykładów).

Aplikacja kliencka musi zaimplementować serwer STOMP, który jest w stanie odbierać komunikaty STOMP z serwera.

W bazie danych musisz utworzyć tabelę subskrypcji, która będzie zawierała informacje o tym, który klient subskrybuje, jakie powiadomienia i jak się z nim połączyć (co najmniej adres IP / nazwa hosta i numer portu).

Musisz także utworzyć wyzwalacze dla wszystkich tabel i zdarzeń, o których chcesz wysyłać powiadomienia.

Stworzyłbym również procedurę składowaną lub funkcję, która odbiera zmodyfikowane dane lub fakt, że pewna tabela została zmieniona z wyzwalaczy, sprawdza tabelę subskrypcji, tworzy komunikat STOMP, a następnie wywołuje skompilowany UDF, który wysyła komunikat STOMP do wszystkich subskrybowanych klientów. Wyzwalacze wywołałyby tę procedurę składowaną lub funkcję zamiast implementować wszystkie te funkcje w każdym z wyzwalaczy.

Klienci muszą zostać zmodyfikowani, aby przetwarzać powiadomienia i podejmować dalsze działania lub monitować użytkownika.

Zastrzeżenie:Nie twierdzę, że jest to najbardziej adekwatne i skalowalne rozwiązanie w Twoim konkretnym przypadku. Jednak w ten sposób możesz samodzielnie wdrożyć system powiadomień, unikając konieczności odpytywania bazy danych.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Uruchamianie sum dla wielu kategorii w MySQL

  2. MYSQL Policz wszystkie wiersze i paginację danych za pomocą zakresu/limitu

  3. Przewodnik po projektowaniu bazy danych do quizu w MySQL

  4. Jak uzyskać najwyższe N ​​wartości każdej kolumny w MySql

  5. Czy mogę przyznać dostęp do baz danych z prefiksem, a następnie z dziką kartą?