Блокировка API-интерфейсов

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

Получение блокировки

Получает блокировку. Эта блокировка будет автоматически снята через 60 секунд, после чего другие клиенты смогут получить блокировку. Вы можете изменить это время, но если оно будет слишком большим, при аварийном завершении скрипта вы практически не сможете подключиться к устройству, и для продолжения подключения может потребоваться перезагрузка устройства. Этот интерфейс является реентерабельным; повторный вход эквивалентен _refresh_lock.

d._acquire_lock(leaseTime=60)

Освобождение блокировки

Активно освобождает блокировку API, после чего другие клиенты смогут получить блокировку.

d._release_lock()

Обновление блокировки

Обновляет блокировку. После каждого вызова время истечения блокировки устанавливается равным указанному leaseTime. Регулярно вызывайте этот интерфейс, чтобы сохранять блокировку API. Аналогично, если значение leaseTime задано слишком большим, при аварийном завершении скрипта вы практически не сможете подключиться к устройству.

d._refresh_lock(leaseTime=60)