|
|
|
Оповещение клиентов об обслуживании БД
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Написал мини-аналог mysqlhotcopy под windows. Утилита работает, таблицы лочит, данные копирует... Теперь хотелось бы уведомлять клиентов, что сервер на обслуживании и не накапливать очередь запросов. Первое что пришло на ум - создать еще одну БД с единственной таблицей и записью, которая будет говорить о том что БД бэкапится или нет. Далее эту запись проверять, когда нужно, в серверном приложении, через которое работаю клиенты. Но все это лишние запросы, лишняя смена БД в сессии, доп. БД.... Может если варианты, как лучше это сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2014, 03:16:15 |
|
||
|
Оповещение клиентов об обслуживании БД
|
|||
|---|---|---|---|
|
#18+
А в чём сложности? в приложении формируешь управляющий сокет и слушаешь его, а в своей программе организуешь получение списка клиентов и шлёшь им в этот сокет уведомление. Правда, не сможешь уведомлять тех, кто ходит сквозь НАТ - ну тогда организуй ещё и серверную приладу, с которой клиент установит канал прослушивания. Можно не собирать список, а тупо мультикастить, но тогда охват будет ещё уже, только в рамках локальной сети. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2014, 09:32:30 |
|
||
|
Оповещение клиентов об обслуживании БД
|
|||
|---|---|---|---|
|
#18+
Сокет и рассылка не пойдет, клиенты разные и обслуживаются по разному. В некоторых схемах клиент может быть за прокси или NAT. Ниже схемы работы. Жирным выделил места, где я могу проверять доступность БД и отвечать клиенту, что мол занято - подожди! :) Чел <-> Клиентское ПО <-> PHP-скрипт <-> БД Чел. <-> Браузер <-> PHP-скрипт <-> БД Робот <-> Серверное ПО (TCP/IP порт) <-> БД Архитектура позволяет практические не менять клиентскую часть (ну ресурс с кодом сообщения добавить). Т.е. мне нужно только точно определять, что в данный момент мой mysqlhotcopy делает копию и при очередном запросе клиента сообщить ему об этом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2014, 09:58:55 |
|
||
|
|

start [/forum/topic.php?fid=47&gotonew=1&tid=1835068]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
43ms |
get topic data: |
7ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 192ms |
| total: | 302ms |

| 0 / 0 |
