Это зависит от вашей базы данных.Почти все базы данных могут запускать триггеры при изменении данных, но код внутри триггера обычно представляет собой SQL (который не поддерживает открытие соединений и т. П.).
Некоторые, например Oracle, допускают триггеры, и они могут запускать Javaкод также.Здесь вы можете построить решение внутри базы данных.
Но есть недостаток: что произойдет, если сигнал не может быть отправлен?Если вся транзакция будет откатана (что может повлиять на другие, относительно не связанные между собой службы.
). Таким образом, обычным решением является написание кода, который выполняет запрос каждый час или около того, а затем отправляет сигнал, когда условиеmet.
Если запрос дорогой, вы можете смешать два: запускать запрос только тогда, когда что-то изменилось (с помощью триггера), и сохранить результат в таблице (например, «что-то произошло в $ timestamp»). В вашем приложении просто проверьте, было ли обновление с момента последнего сигнала.