Задавайте вопросы, мы ответим
Вы не зашли.
Меня интересуют возможности MySQL по поддержанию механизма нотификации либо серверного приложения, написанного на с++ либо подписанных к базе клиентов.Есть ли такие возможности у Mysql?
Неактивен
Вон даже какое-то готовое решение есть (не знаю, насколько рабочее):
https://github.com/Cyclonecode/mysql-notification
UPD: Посмотрел на исходники, они не очень. Я бы лучше посылал UDP в какой-то well-known порт, тогда оно не будет зависеть от того, перезагрузится демон, в которого отправляются события, или нет.
Отредактированно paulus (21.02.2023 13:46:12)
Неактивен
Речь идет об оповещении клиентов об изменении базы данных, чтобы они могли сделать запрос на обновление данных.
Варианта тут два клиенты подписываются к базе данных внося свои данные в специальную таблицу подписчиков а база при наступлении нужного события информирует их отправляя сообщение если такая возможность есть у mysql.
второй вариант на сервере еще работает серверное приложение и клиенты подписываются к нему. База данных направляет уведомление серверному приложению которое рассылает оповещения подписанным клиентам, которые потом делают запрос к базе и обновляют данные.
Неактивен
Ну, напрямую MySQL не умеет рассылать сообщения, более того, протокол не подразумевает инициацию передачи данных с серверной стороны, поэтому лучший костыль, который в этом месте можно придумать, это long polling. Можно соорудить на GET_LOCK, например, но будет точно очень много перезапросов в момент изменения, поэтому скорее второй вариант.
А второй вариант, видимо, нужно написать на базе UDF, как описано в предыдущем сообщении.
Неактивен