/// <inheritdoc/> public async Task <bool> CanIdentifyAsync(int shardId, CancellationToken token) { token.ThrowIfCancellationRequested(); try { await cache.AcquireLockAsync(GetCacheKey(shardId), token); } catch (OperationCanceledException) { return(false); } await cache.ExpiresAsync(GetCacheKey(shardId), TimeSpan.FromSeconds(5)); return(true); }