APIロック

この章で説明するインターフェースは、すべてのAPIインターフェースをロックするために使用されます。これにより、APIを現在のDeviceインスタンスのみが使用できるようにロックし、他のユーザーやプロセスによるAPIの使用を防ぐことができます。デフォルトのロック時間を設定したり、ロックを定期的に更新したりすることが可能です。定期的に更新する方法を推奨します。また、APIロックを能動的に解放することもできます。安全なロック手順は次のとおりです:ロックの取得 -> ロックを定期的に更新するためのスレッドの作成 -> ロックの解放。

ロックの取得

ロックを取得します。このロックは60秒後に自動的に解放され、その後、他のクライアントがロックを取得できるようになります。この時間は変更可能ですが、あまりにも長く設定しすぎると、スクリプトが異常終了した場合に、デバイスにほぼ永久に接続できなくなる可能性があります。接続を再開するには、デバイスの再起動が必要になる場合があります。このインターフェースは再入可能(リエントラント)であり、再入時には _refresh_lock と等価です。

d._acquire_lock(leaseTime=60)

ロックの解放

APIロックを能動的に解放します。解放後、他のクライアントがロックを取得できるようになります。

d._release_lock()

ロックの更新

ロックを更新します。呼び出すたびに、ロックの有効期限がこの leaseTime に設定されます。APIのロックを維持するために、このインターフェースを定期的に呼び出してください。同様に、leaseTime をあまりにも長く設定しすぎると、スクリプトが異常終了した場合に、デバイスにほぼ永久に接続できなくなる可能性があります。

d._refresh_lock(leaseTime=60)