Class LockService

LockService

コードのセクションへの同時アクセスを防ぎます。これは、複数のユーザーまたはプロセスが共有リソースを変更するときに、競合を回避する場合に便利です。

Methods

方法戻り値の型概要
getDocumentLock()Lock現在のドキュメントの任意のユーザーがコードのセクションを同時に実行できないようにするロックを取得します。
getScriptLock()Lockユーザーによるコードのセクションの同時実行を防止するロックを取得します。
getUserLock()Lock現在のユーザーがコードの一部を同時に実行できないようにするロックを取得します。

詳細なドキュメント

getDocumentLock()

現在のドキュメントの任意のユーザーがコードのセクションを同時に実行できないようにするロックを取得します。ドキュメント ロックで保護されているコード セクションは、異なるドキュメントのコンテキストで実行されているスクリプト インスタンスによって同時に実行できますが、同じドキュメントに対して複数の実行を実行することはできません。なお、ロックは Lock.tryLock(timeoutInMillis) または Lock.waitLock(timeoutInMillis) が呼び出されるまで、実際には取得されません。このメソッドが、含まれているドキュメント以外のコンテキスト(スタンドアロンのスクリプトや webapp など)から呼び出された場合、null が返されます。

戻る

Lock - スクリプトと現在のドキュメントにスコープが設定されたロック。または、スタンドアロン スクリプトまたは webapp から呼び出された場合は null


getScriptLock()

ユーザーによるコードのセクションの同時実行を防止するロックを取得します。ユーザーの ID にかかわらず、スクリプトのロックで保護されているコード セクションを同時に実行することはできません。なお、ロックは Lock.tryLock(timeoutInMillis) または Lock.waitLock(timeoutInMillis) が呼び出されるまで、実際には取得されません。

戻る

Lock - スクリプトをスコープとするロック


getUserLock()

現在のユーザーがコードの一部を同時に実行できないようにするロックを取得します。ユーザーロックで保護されたコードセクションは、異なるユーザーが同時に実行できますが、各ユーザーが 1 回しか実行できません。ロックはユーザーに対する「非公開」です。なお、ロックは、Lock.tryLock(timeoutInMillis) または Lock.waitLock(timeoutInMillis) が呼び出されるまで、実際には取得されません。

戻る

Lock - スクリプトと現在のユーザーをスコープとするロック