Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как сообщить чужому сервису, что в бд было обновление? / 7 сообщений из 7, страница 1 из 1
11.12.2019, 14:46
    #39901272
palladin600
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сообщить чужому сервису, что в бд было обновление?
Такое дело,
есть простая админка, которая выводит информацию из бд.
Ну так вот пользователю надо постоянно дёргать админку, которая в свою очередь дергает бд на предмет нет ли в таблице новых данных.

Как придумать идею, что если данные в такой-то таблице изменились, то срабатывал бы некий сигнал об этом в стороннее приложение/сервис?

Пока на ум приходит только использование триггера на UPDATE/INSERT/DELETE, но как придумать что и куда он будет передавать/отправлять?
...
Рейтинг: 0 / 0
11.12.2019, 14:54
    #39901280
1C Developer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сообщить чужому сервису, что в бд было обновление?
А если у Вас в БД будет что-то меняться по 100 000 раз в секунду?
...
Рейтинг: 0 / 0
11.12.2019, 14:57
    #39901284
Minamoto
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сообщить чужому сервису, что в бд было обновление?
palladin600, не очень давно была довольно активная тема с обсуждением, возможно почерпнете что-то для себя:

https://www.sql.ru/forum/1316209/uvedomlenie-klientov-ob-izmeneniyah-na-servere

Если вкратце, правильное решение для этого механизма - это Service Broker - сервис подписывается на очередь, при изменении данных вы пишете сообщение в очередь о том, что произошло изменение, сервис получает уведомление, производит вычитку данных.
Запись в очередь в плохом случае реализуется в триггере на таблицу, в хорошем - изменением таблицы исключительно через процедуры, без прямых вызовов UPDATE/INSERT/DELETE.
...
Рейтинг: 0 / 0
11.12.2019, 15:37
    #39901314
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сообщить чужому сервису, что в бд было обновление?
Minamoto

Если вкратце, правильное решение для этого механизма - это Service Broker


Это совсем не быстро. Добавьте ROWVERSION и выбирайте то, что больше ROWVERSION в выгруженных данных.
...
Рейтинг: 0 / 0
11.12.2019, 15:55
    #39901333
Minamoto
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сообщить чужому сервису, что в бд было обновление?
a_voronin
Minamoto

Если вкратце, правильное решение для этого механизма - это Service Broker


Это совсем не быстро. Добавьте ROWVERSION и выбирайте то, что больше ROWVERSION в выгруженных данных.

1) Это решение те той задачи, которую озвучил ТС
2) Каким образом это позволит уведомить сторонний сервис о прошедшей команде DELETE?
...
Рейтинг: 0 / 0
11.12.2019, 16:17
    #39901345
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сообщить чужому сервису, что в бд было обновление?
Minamoto
a_voronin
пропущено...


Это совсем не быстро. Добавьте ROWVERSION и выбирайте то, что больше ROWVERSION в выгруженных данных.

1) Это решение те той задачи, которую озвучил ТС
2) Каким образом это позволит уведомить сторонний сервис о прошедшей команде DELETE?


это решает задачу тс для update insert. сервис обратиться сам. delete не уведомит .
...
Рейтинг: 0 / 0
11.12.2019, 18:55
    #39901427
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сообщить чужому сервису, что в бд было обновление?
a_voronin
Minamoto

Если вкратце, правильное решение для этого механизма - это Service Broker


Это совсем не быстро. Добавьте ROWVERSION и выбирайте то, что больше ROWVERSION в выгруженных данных.


Как это решает задачу уведомления клиента по событию в таблице?
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как сообщить чужому сервису, что в бд было обновление? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]