MySQL listen уведомляет эквивалент

есть ли эквивалент PostgresQL уведомления и слушать в MySQL? В принципе, мне нужно слушать триггеры на моем сервере Java-приложений.

4 ответов


нет, таких встроенных функций пока нет. Вам нужно "пинговать" (каждые 1-5 секунд) базу данных с выбором с предварительно установленным флагом, таким как "читать" 0/1. После

SELECT * FROM mytable WHERE read = 0

обновить его с read = 1


хорошо, так что я нашел, что вы можете сделать функции UDF в mysql, которые могут делать все, что угодно, но должны быть написаны на C/C++. Затем они могут быть вызваны из триггеров обновлений в базе данных и уведомить ваше приложение, когда произошло обновление. Я видел, что есть некоторые проблемы с безопасностью. Я не использовал его сам, но из того, что я вижу, это выглядит как что-то, что может выполнить то, что вы хотите сделать, и больше.

http://dev.mysql.com/doc/refman/5.6/en/adding-udf.html


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

Е. Г. --Сценарий-- Пользователь A смотрит на запись 1 Пользователь B сохраняет обновление для записи 1, пока пользователь A его открывает.


проект github mysql-уведомление обеспечивает пользователя MySQL функции MySQLNotification() как плагин для MySQL, который будет отправлять события уведомлений через интерфейс сокета. Этот проект включает образец тестового сервера NodeJS, который получает события уведомлений, которые могут быть адаптированы для Java или любой другой службы сокетов.

пример использования:

$ DELIMITER @@
$ CREATE TRIGGER <triggerName> AFTER INSERT ON <table> 
  FOR EACH ROW 
  BEGIN 
     SELECT MySQLNotification(NEW.id, 2) INTO @x; 
  END@@

проект включает в себя полный исходный код и инструкции по установке для OSX и Linux. Лицензия-GNU В3.