Ana içeriğe geç

Kilitle

Belirtilen anahtar için kilit edinmeye çalışır ve kilit edinilene kadar bekler.

$Cache.Lock(key: string):( dize | "null" )

Belirtilen anahtar için kilit edinmeye çalışır; kilit edinilene veya zaman aşımı süresi dolana kadar belirlenen süre boyunca bekler.

$Cache.Lock(key: string, blockingTimeout: string, duration?: string, tryLockInterval?: string):( dize | "null" )

Parametreler

string key
    Paylaşımlı erişim için benzersiz tanımlayıcı olan kilit anahtarı. Zorunludur.

string blockingTimeout
    Kilit için beklenecek süre; "hh:mm:ss" biçimindedir. Varsayılan değer 60 saniyedir.

string duration optional

string tryLockInterval optional

Döndürür

Başarılı olursa edinilen kilit belirtecini, aksi takdirde null değerini döndürür. Başarılı olursa edinilen kilit belirtecini, aksi takdirde null değerini döndürür.

Açıklamalar

Bu yöntem, paylaşımlı anahtar serbest kalana veya zaman aşımına ulaşılana kadar otomatik olarak bekleme durumuna geçer. Beklemek istemiyorsanız bunun yerine $Cache.TryLock yöntemini kullanın.

Edinilen kilitler her zaman şu yöntem kullanılarak serbest bırakılmalıdır: $Cache.ReleaseLock oluşturulan belirteç değeriyle. Belirteç sahipliği kanıtlar; farklı bir belirteç kilidi serbest bırakamaz. Aksi takdirde kilit, yapılandırılmış veya sağlayıcının varsayılan süresi dolana kadar tutulur.

Kilit edinmeye çalışma, gerekirse bekleme ve işlem tamamlandıktan sonra kilidi serbest bırakma

1
2
3
4
5
6
7
var tokenValue = $Cache.Lock('mylock');
try {
  // Locked code block
}
finally{
  $Cache.ReleaseLock('mylock',tokenValue);
}
Bu yöntem, paylaşımlı anahtar serbest kalana veya zaman aşımına ulaşılana kadar otomatik olarak bekleme durumuna geçer. Beklemek istemiyorsanız bunun yerine $Cache.TryLock yöntemini kullanın.

Edinilen kilitler her zaman şu yöntem kullanılarak serbest bırakılmalıdır: $Cache.ReleaseLock oluşturulan belirteç değeriyle. Belirteç sahipliği kanıtlar; farklı bir belirteç kilidi serbest bırakamaz. Aksi takdirde kilit, yapılandırılmış veya sağlayıcının varsayılan süresi dolana kadar tutulur.

Kilit zaten tutuluyorsa 30 saniye bekleme

1
2
3
4
5
6
7
8
// Wait for 30 seconds if already locked
var tokenValue = $Cache.Lock('mylock', '00:00:30');
try {
  // Locked code block
}
finally {
  $Cache.ReleaseLock('mylock',tokenValue);
}

Ayrıca bkz.