Всем добрый день!
Есть потребность в добавлении блокировок на изменение объекта, либо хотя бы оповещений на карточках конкретных объектов в системе, что кто-то уже редактирует данный объект (следовательно если никто не редактирует, то ничего показывать не нужно).
Сталкивался ли кто-то с данной задачей? Куда подскажите копать, в какую сторону?
Нравится
Сидоров Александр В.,
Не согласен эти события происходят когда идет модификация записи например до изменения и после а блокировка нужна при открытии на редактирование те просто когда открывают карточку редактирования
Копать в стороны внутреннего процесса объекта.
Т.е. подписываемся на события объекта https://monosnap.com/file/QeQgg4qPvVvLj7H1WWpckQ1sIy39BW, реализуем в БП логику (наверняка пишем в базу или в редис объект и блокировку на объект).
На страницу можно прокинуть сообщение с помощью сокетов
Навскидку
1) Создать реестр блокировок
2) При открытии карточки редактирования проверять и если блокировки нет устанавливать кто что заблокировал и не пускать сохранять (открывать на чтение) или просто уведомлять что данный объект уже открыт на редактирование у того то.
3) При выходе(закрытии карточки редактирования) снимать блокировку
4)При закрытии сесии пользователя (выходе из системы) очищать все блокировки пользователя
А вы уверены что оно вам нужно?
Сидоров Александр В.,
Не согласен эти события происходят когда идет модификация записи например до изменения и после а блокировка нужна при открытии на редактирование те просто когда открывают карточку редактирования
Каждый раз, когда встаёт такой вопрос, плавно приводим клиента к мысли, что ответственный за конкретную запись данных должен быть один. Тогда резко сокращается вероятность одновременного редактирования