$Cache.Lock
Overview
Tries to acquire a lock for the enclosure key until the lock is retrieved.
string $Cache.Lock(key: string)
Tries to acquire a lock for shared key, until lock has acquired or timeout.
string $Cache.Lock(key: string, blockingTimeout: string)
Arguments
string key
Lock key. Key is a unique identifier for shared access. Required.
string blockingTimeout
Duration of waiting timeout in hh:mm:ss format. Default value is 60 second.
Returns
Acquired lock token if successful. Otherwise returns null.
Remarks
This method automatically enters to wait state for shared key is set to free until timeout is reached. If you do not want to wait please use the $Cache.TryLock method instead.
Acquired lock always must be released with $Cache.ReleaseLock method with generated token value. Otherwise lock is kept for long period until it's expire. (Default 5 min)
Example
Try to wait for a lock for a shared key and release it after operation is completed.
var tokenValue = $Cache.Lock('mylock');
try {
// Locked code block
}
finally{
$Cache.ReleaseLock('mylock',tokenValue);
}
Example
// Wait for 30 seconds if already locked
var tokenValue = $Cache.Lock('mylock', '00:00:30');
try {
// Locked code block
}
finally {
$Cache.ReleaseLock('mylock',tokenValue);
}
See Also
Copyright © 2010 - 2023 Emakin. All rights reserved.