Russian Qt Forum
Май 08, 2024, 21:07 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Идеологический вопрос по БД  (Прочитано 3066 раз)
Vamireh
Гость
« : Март 01, 2015, 23:00 »

Допустим, есть список устройств в таблице. Каждый клиент выбирает себе устройство, с которым будет работать (id в переменную кладет, например). Нужно запретить работу с этим устройством параллельно другим клиентам. Как лучше сделать? Блокировка строк - вроде бы не мой случай. Пока добавил булевый столбец для проверки... Но, как минимум недостаток: если клиент аварийно завершится, то устройство так и останется "занятым", т.к. флаг не сбросится
« Последнее редактирование: Март 01, 2015, 23:03 от Vamireh » Записан
Vamireh
Гость
« Ответ #1 : Март 01, 2015, 23:12 »

Пока идея есть написать небольшой сервер для этой цели....
Записан
deMax
Хакер
*****
Offline Offline

Сообщений: 600



Просмотр профиля
« Ответ #2 : Март 19, 2015, 11:16 »

Пока идея есть написать небольшой сервер для этой цели....
Можно без сервера, в интовый столбец писать время работы с устройством и постоянно обновлять(раз в минуту). Если в столбце время не обновляется обнулить.
Записан
AzazelloAV
Гость
« Ответ #3 : Март 26, 2015, 02:39 »

Но, как минимум недостаток: если клиент аварийно завершится, то устройство так и останется "занятым", т.к. флаг не сбросится

Интересная, и в тоже время сложная задача.

Если это не скады системы я бы пошёл в лоб - каждый клиент сам подтверждает свое присутсвие. Т.е в вашем случае каждый клиент посылает раз в минуту о своём присутствии. Если уж делать очень примитивно, то два поля в БД - бул и время. Бул по расписанию сбрасывается раз в 2 минуты, если время больше 1 минуты (поле время), так вы отловите отвалившихся клиентов.

ЗЫ: более подробное описание ответа выше
« Последнее редактирование: Март 26, 2015, 03:14 от AzazelloAV » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.047 секунд. Запросов: 23.