Ana içeriğe geç

TryLockAsync

Kilit edinmek için hemen tek bir zaman uyumsuz deneme yapar.

1
$Cache.TryLockAsync(key: string):Promise<( string | `"null"` )>

Parametreler

string key
    Paylaşımlı kilit anahtarı.

Döndürür

Edinilen belirteci içeren bir promise veya anahtar zaten kilitliyse null.

Notlar

Bu yöntem kilidin kullanılabilir olmasını beklemez. Komut dizisinin sınırlı bir süre beklemesi gerekiyorsa $Cache.LockAsync kullanın.

Yalnızca kilit hemen kullanılabiliyorsa iş yapma

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
var tokenValue = await $Cache.TryLockAsync('mylock');
if (tokenValue == null) {
  // Another operation already holds the lock
} else {
  try {
    // Locked code block
  }
  finally {
    await $Cache.ReleaseLockAsync('mylock', tokenValue);
  }
}

Başka bir komut dizisi arka plan işini zaten başlattığında yinelenen işi atlama

1
2
3
4
5
6
7
8
9
var tokenValue = await $Cache.TryLockAsync('daily-summary');
if (tokenValue != null) {
  try {
    // Create the daily summary
  }
  finally {
    await $Cache.ReleaseLockAsync('daily-summary', tokenValue);
  }
}

Ayrıca bkz.