powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как сообщить чужому сервису, что в бд было обновление?
7 сообщений из 7, страница 1 из 1
Как сообщить чужому сервису, что в бд было обновление?
    #39901272
palladin600
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такое дело,
есть простая админка, которая выводит информацию из бд.
Ну так вот пользователю надо постоянно дёргать админку, которая в свою очередь дергает бд на предмет нет ли в таблице новых данных.

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

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

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

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

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


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

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


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

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


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

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


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

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


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


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


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