Поставка lock.cf (8.3.24.1467)
- включает подсистему дпДополнительныеПодсистемы.ВиртуальныеБлокировки
Назначение объектов подсистемы
Справочник.дпВиртуальныйБлокировки предназначен для хранения списка виртуальных блокировок
- Ресурс - ресурс блокировки, любая ссылка или строка (например имя или хеш функции)
- Виртуальная блокировка обеспечивается жизнью объекта Блокировка.БлокировкаОбъект и автоматически заканчивается с его уничтожением при завершении функции, завершении сеанса или присвоении переменной значения Неопределено
// использовать до начала транзакции
Блокировка = дпВиртуальныеБлокировки.ЗаблокироватьРесурс("Тест");
Если Не Блокировка.Установлена Тогда
ВызватьИсключение Блокировка.ТекстОшибки;
КонецЕсли;
// заблокированный код функции
РегистрСведений.дпСвойстваВиртуальныхБлокировок предназначен для хранения информации о последней блокировке ресурса
- ДатаУстановки - дата последней установки
- Пользователь - имя пользователя
- НомерСеанса - номер сеанса блокировки
Пример использования подсистемы
- Регламентное задание взаимодействует с внешней системой, по ошибке одно и тоже задание запускается одновременно более одного раза и возникают коллизии, можно в начале функции регламентного задания добавить виртуальную блокировку на имя функции и успешно отрабатывать будет только первое запущенное регламентное задание.

- Обработка данных за период предполагает, что параллельно возможно обрабатывать данные только за другой не пересекающийся по датам период, можно в начале обработки заблокировать массив ресурсов по каждой дате периода как хеш (имя функции + дата) и успешно отрабатывать только периоды без заблокированных дат.

Вступайте в нашу телеграмм-группу Инфостарт
