Получать оповещения от MySQL к Jenkins при изменении конкретных данных [дублировать]

Решение с SVG:

Text

https://jsfiddle.net/qc8ht5eb/

3
задан Oleg Ivanov 22 January 2016 в 11:51
поделиться

1 ответ

Ну, не совсем невозможно уведомить клиентов об изменениях, внесенных в базу данных, хотя для этого нет встроенного решения.

В mysql вы можете создавать скомпилированные пользовательские функции (UDF) в C / C ++. Они могут существенно расширить функциональность mysql любым способом, например, отправлять сообщения по сети. Вы можете создать свой собственный UDF или использовать библиотеки, доступные на mysqludf.org для отправки сообщений по сети. Вы можете начать с использования библиотеки STOMP на mysqludf.org для отправки сообщений STOMP . Поскольку STOMP является языковым агностиком, вы также можете использовать его из среды .NET, см. эту SO-тему (если вы ищете Интернет для сервера .net STOMP, то вы найдете больше примеров).

Клиентское приложение должно реализовать сервер STOMP, который может получать сообщения STOMP с сервера.

В базе данных вам необходимо создать таблицу подписки, содержащую информацию, которую клиент подписывает для каких уведомлений и как подключиться к нему (IP-адрес / имя хоста и номер порта как минимум).

Вам также необходимо создать триггеры для всех этих таблиц и событий, о которых вы хотите отправлять уведомления.

Я бы также создал хранимую процедуру или функцию, которая получает измененные данные или тот факт, что определенная таблица была изменена из триггеров, проверяет таблицу подписки, создает сообщение STOMP, а затем вызывает скомпилированный UDF, который отправьте сообщение STOMP всем подписчикам. Триггеры будут вызывать эту хранимую процедуру или функцию вместо реализации всех этих функций в каждом из триггеров.

Клиенты должны быть изменены для обработки уведомлений и принятия дальнейших действий или запроса пользователя.

Отказ от ответственности: я не утверждаю, что это наиболее адекватное и масштабируемое решение для вашего конкретного случая. Однако таким образом вы можете самостоятельно внедрить систему уведомлений, избегая необходимости опроса вашей базы данных.

4
ответ дан Community 19 August 2018 в 06:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: