Получить уведомление из базы данных - PullRequest
0 голосов
/ 23 февраля 2012

У меня есть база данных, например, SQL, и я получаю фиды от 3-х сторонних производителей в свою базу данных (обновляемая каждый раз). Мне нужно получить уведомление о моем заявлении, когда, как экзамен:

select * form table Bonus > 50%

Должен ли я использовать службы Windows и проверять всю базу данных или я могу установить ее в SQL и получать оповещения из SQL? Я должен получить уведомление как можно скорее, чтобы проверять базу данных каждые 1 или 5 секунд, это будет слишком сложно.

1 Ответ

3 голосов
/ 23 февраля 2012

Это зависит от вашей базы данных.Почти все базы данных могут запускать триггеры при изменении данных, но код внутри триггера обычно представляет собой SQL (который не поддерживает открытие соединений и т. П.).

Некоторые, например Oracle, допускают триггеры, и они могут запускать Javaкод также.Здесь вы можете построить решение внутри базы данных.

Но есть недостаток: что произойдет, если сигнал не может быть отправлен?Если вся транзакция будет откатана (что может повлиять на другие, относительно не связанные между собой службы.

). Таким образом, обычным решением является написание кода, который выполняет запрос каждый час или около того, а затем отправляет сигнал, когда условиеmet.

Если запрос дорогой, вы можете смешать два: запускать запрос только тогда, когда что-то изменилось (с помощью триггера), и сохранить результат в таблице (например, «что-то произошло в $ timestamp»). В вашем приложении просто проверьте, было ли обновление с момента последнего сигнала.

...