異なるプロセス間で同期を行うために使用するファイル ロック機能を提供します。これにより、一度に 1 プロセスのみが、ファイルまたは他の共有リソースに書き込みや読み込みを行えるようになります。
説明
これを使用する別のプロセスは、base-url の値を使用しなければなりません。この値は、他のプロセスと同期を取るため、ファイルシステムの同じ場所をポイントしています。
この呼び出しは、カッコ内のコードが終了するまでローカル ファイルをロック状態に保ち、コードが終了した時点、または with-local-file-lock を過ぎて例外がスローされたとき、ロックを解除します。
構文
"with-local-file-lock" マクロは次の構文を使用します。
{with-local-file-lock base-url
[, timeout = time-value]
[, old-lock-override-timeout = time-value]
do
body
}
base-url:
ロック ファイルのファイル名の一部として使用される基本
Url。
base-url は、アプリケーションによって使用されるファイルの
Url にすることができます。
また、ユーザーはオペレーティング システムに対し、base-url を含むディレクトリへの書き込みアクセスを与える必要があります。
ロック ファイルは、base-url に基づく名前を持つファイルです。ただし、"." がファイル名の前に付加され、拡張子 ".lock" で終わります。
old-lock-override-timeout:
ロックを取得してからロックがオーバーライドされるまでの時間を示す
Time。
コンピュータのリブートやリモート コンピュータでのアプリケーションの異常終了後、古いローカル ファイルのロックが残ることがあります。このような古いロックは、異常終了またはリブートを確認した後、オーバーライドする必要があります。この値は、現在実行中のプロセスだけでなく、コンピュータ上にある、プロセスによって作成されたロックのオーバーライドを決定するためにのみ使用されます。
この値は、ロックが通常保持される最長時間より数倍長くする必要があります。また、この値は少なくとも 2s にする必要があります。
既定値は 5 * 60s または 5 分です。
注意事項
同じロック ファイルを再帰的にロックすることはできません。最も外側のファイル ロックのみ可能です。