Konstantin18ko
@Konstantin18ko
Стоматолог

Уведомления об обновлении БД, как реализовать?

Есть БД, написал на java программу, которая вытягивает список из таблицы. При нажатии на кнопку "обновить", список обновляется (таблица заново опрашивается, строки удаляются, добавляются, апдейтятся) выводится обновленная таблица.

Как сделать push уведомления? О появлении, обновлении, удалении строки в таблице?

Вариант опрашиваеть по таймингу - уже реализовано. Нужны другие варианты. По возможности с примером.
  • Вопрос задан
  • 866 просмотров
Пригласить эксперта
Ответы на вопрос 5
@protven
Ну как вариант использовать триггеры в БД, которые после срабатывания инициируют запрос из БД в вашу программу по какому-то интерфейсу. Но это, имхо, плохая практика. Я хз как там в mysql, но однажды пришлось поддерживать "энтерпрайз решение", в котором большая часть бизнес-логики и даже часть транспортного уровня приложения было засунуто в БД (Oracle). Ну то есть приклад дергал хранимку в БД, хранимка дергала по http (!) внешнюю систему, а потом полученный ответ передавала так же по http обратно в приложение(!!). Поддерживать и трабл-шутить это все было ппц как сложно.
Ответ написан
viperz
@viperz
inspired by Java
Не знаю, насколько это хорошая практика. Просто вот сходу придумал "дешевый" вариант реализации.

В Oracle есть SCN , что-то вроде внутренних часов этой СУБД, каждое изменение в БД ознаменуется инкрементацией этого "времени".
По такому же принципу можно трекать изменения, т.е. сделать счетчик (например в одной таблице одну строку с одной колонкой, которая хранит целую переменную) изменений БД. Ну и соответственно в вашей программе вы запоминаете последнее значение, а потом делаете банальный селект этого счетчика из БД.
Ответ написан
Комментировать
angry_cellophane
@angry_cellophane
Запилить сервер для мессенджинга. Сервер будет полить базу (а ещё лучше проводить все операции с бд через него - тогда и полить не надо), создавать сообщения(создание, удаление, обновление строчек в табличках). Сообщения хранятся и передаются на клиент какой-нибудь мессенджинговой системой, например каким-нибудь JMS брокером.
Мессенджинговые системы и были придуманы для таких задач.
Ответ написан
Комментировать
tech22
@tech22
Лидер проекта http://th22.info
Хм... Навешиваем кучу триггеров на изменение которые будут менять одно значение в табличке 0/1 дальше на крон вешаем паникера который скриптом опрашивает состояние. С Postgres можно журнал опросить что там поменялось.
Ответ написан
Комментировать
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы