Вопрос

Блокировки

Всем добрый день!

Есть потребность в добавлении блокировок на изменение объекта, либо хотя бы оповещений на карточках конкретных объектов в системе, что кто-то уже редактирует данный объект (следовательно если никто не редактирует, то ничего показывать не нужно).

Сталкивался ли кто-то с данной задачей? Куда подскажите копать, в какую сторону?

Нравится

4 комментария
Лучший ответ

Сидоров Александр В.,

Не согласен эти события происходят когда идет модификация записи например до изменения и после а блокировка нужна при открытии на редактирование те просто когда открывают карточку редактирования

Копать в стороны внутреннего процесса объекта.

Т.е. подписываемся на события объекта https://monosnap.com/file/QeQgg4qPvVvLj7H1WWpckQ1sIy39BW, реализуем в БП логику (наверняка пишем в базу или в редис объект и блокировку на объект).

На страницу можно прокинуть сообщение с помощью сокетов

Навскидку

1) Создать реестр блокировок

2) При открытии карточки редактирования проверять и если блокировки нет устанавливать кто что заблокировал и не пускать сохранять (открывать на чтение) или просто уведомлять что данный объект уже открыт на редактирование у того то.

3) При выходе(закрытии карточки редактирования) снимать блокировку

4)При закрытии сесии пользователя (выходе из системы)  очищать все блокировки пользователя

А вы уверены что оно вам нужно?

 

Сидоров Александр В.,

Не согласен эти события происходят когда идет модификация записи например до изменения и после а блокировка нужна при открытии на редактирование те просто когда открывают карточку редактирования

Каждый раз, когда встаёт такой вопрос, плавно приводим клиента к мысли, что ответственный за конкретную запись данных должен быть один. Тогда резко сокращается вероятность одновременного редактирования

Показать все комментарии