|
Как сообщить чужому сервису, что в бд было обновление?
|
|||
---|---|---|---|
#18+
Такое дело, есть простая админка, которая выводит информацию из бд. Ну так вот пользователю надо постоянно дёргать админку, которая в свою очередь дергает бд на предмет нет ли в таблице новых данных. Как придумать идею, что если данные в такой-то таблице изменились, то срабатывал бы некий сигнал об этом в стороннее приложение/сервис? Пока на ум приходит только использование триггера на UPDATE/INSERT/DELETE, но как придумать что и куда он будет передавать/отправлять? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2019, 14:46 |
|
Как сообщить чужому сервису, что в бд было обновление?
|
|||
---|---|---|---|
#18+
А если у Вас в БД будет что-то меняться по 100 000 раз в секунду? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2019, 14:54 |
|
Как сообщить чужому сервису, что в бд было обновление?
|
|||
---|---|---|---|
#18+
palladin600, не очень давно была довольно активная тема с обсуждением, возможно почерпнете что-то для себя: https://www.sql.ru/forum/1316209/uvedomlenie-klientov-ob-izmeneniyah-na-servere Если вкратце, правильное решение для этого механизма - это Service Broker - сервис подписывается на очередь, при изменении данных вы пишете сообщение в очередь о том, что произошло изменение, сервис получает уведомление, производит вычитку данных. Запись в очередь в плохом случае реализуется в триггере на таблицу, в хорошем - изменением таблицы исключительно через процедуры, без прямых вызовов UPDATE/INSERT/DELETE. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2019, 14:57 |
|
Как сообщить чужому сервису, что в бд было обновление?
|
|||
---|---|---|---|
#18+
Minamoto Если вкратце, правильное решение для этого механизма - это Service Broker Это совсем не быстро. Добавьте ROWVERSION и выбирайте то, что больше ROWVERSION в выгруженных данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2019, 15:37 |
|
Как сообщить чужому сервису, что в бд было обновление?
|
|||
---|---|---|---|
#18+
a_voronin Minamoto Если вкратце, правильное решение для этого механизма - это Service Broker Это совсем не быстро. Добавьте ROWVERSION и выбирайте то, что больше ROWVERSION в выгруженных данных. 1) Это решение те той задачи, которую озвучил ТС 2) Каким образом это позволит уведомить сторонний сервис о прошедшей команде DELETE? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2019, 15:55 |
|
Как сообщить чужому сервису, что в бд было обновление?
|
|||
---|---|---|---|
#18+
Minamoto a_voronin пропущено... Это совсем не быстро. Добавьте ROWVERSION и выбирайте то, что больше ROWVERSION в выгруженных данных. 1) Это решение те той задачи, которую озвучил ТС 2) Каким образом это позволит уведомить сторонний сервис о прошедшей команде DELETE? это решает задачу тс для update insert. сервис обратиться сам. delete не уведомит . ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2019, 16:17 |
|
Как сообщить чужому сервису, что в бд было обновление?
|
|||
---|---|---|---|
#18+
a_voronin Minamoto Если вкратце, правильное решение для этого механизма - это Service Broker Это совсем не быстро. Добавьте ROWVERSION и выбирайте то, что больше ROWVERSION в выгруженных данных. Как это решает задачу уведомления клиента по событию в таблице? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2019, 18:55 |
|
|
start [/forum/topic.php?fid=46&fpage=77&tid=1686812]: |
0ms |
get settings: |
12ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 354ms |
total: | 471ms |
0 / 0 |