API-Sperre

Die in diesem Kapitel beschriebenen Schnittstellen dienen zum Sperren aller API-Schnittstellen, sodass Sie die Schnittstellen so sperren können, dass sie nur von der aktuellen Device-Instanz verwendet werden können. Dies verhindert, dass die API von anderen Benutzern oder Prozessen verwendet wird. Sie können eine standardmäßige Sperrdauer festlegen oder die Sperre selbst regelmäßig erneuern. Die regelmäßige Erneuerung wird empfohlen. Sie können die Schnittstellensperre auch aktiv freigeben. Ein sicherer Sperrvorgang ist: Sperre anfordern -> Thread zur regelmäßigen Erneuerung der Sperre erstellen -> Sperre freigeben.

Sperre anfordern

Fordert die Sperre an. Diese Sperre wird nach 60 Sekunden automatisch freigegeben. Nach der automatischen Freigabe können andere Clients die Sperre anfordern. Sie können diese Zeit ändern, aber wenn Sie sie zu hoch einstellen und das Skript abnormal beendet wird, können Sie möglicherweise fast nie wieder eine Verbindung zum Gerät herstellen. Möglicherweise müssen Sie das Gerät neu starten, um die Verbindung wiederherzustellen. Diese Schnittstelle ist reentrant; ein erneuter Aufruf entspricht _refresh_lock.

d._acquire_lock(leaseTime=60)

Sperre freigeben

Gibt die API-Sperre aktiv frei. Danach können andere Clients die Sperre anfordern.

d._release_lock()

Sperre erneuern

Erneuert die Sperre. Bei jedem Aufruf wird die Ablaufzeit der Sperre auf diesen leaseTime-Wert gesetzt. Rufen Sie diese Schnittstelle regelmäßig auf, um die API-Sperre aufrechtzuerhalten. Auch hier gilt: Wenn leaseTime zu hoch eingestellt ist und das Skript abnormal beendet wird, können Sie möglicherweise fast nie wieder eine Verbindung zum Gerät herstellen.

d._refresh_lock(leaseTime=60)