public void Should_be_able_to_retrieve_stored_Policy_using_TryGet() { Policy policy = Policy.NoOp(); string key = Guid.NewGuid().ToString(); Policy outPolicy = null; _registry.Add(key, policy); _registry.TryGet(key, out outPolicy).Should().BeTrue(); outPolicy.Should().BeSameAs(policy); }
private IAsyncPolicy <DurableCircuitBreaker> GetCachePolicy(string circuitBreakerId) { var key = $"{DurableCircuitBreakerKeyPrefix}{circuitBreakerId}"; if (policyRegistry.TryGet(key, out IAsyncPolicy <DurableCircuitBreaker> cachePolicy)) { return(cachePolicy); } TimeSpan checkCircuitInterval = ConfigurationHelper.GetCircuitConfigurationTimeSpan(circuitBreakerId, "PerformancePriorityCheckCircuitInterval", DefaultPerformancePriorityCheckCircuitInterval); if (checkCircuitInterval > TimeSpan.Zero) { cachePolicy = Policy.CacheAsync <DurableCircuitBreaker>( serviceProvider .GetRequiredService <IAsyncCacheProvider>() .AsyncFor <DurableCircuitBreaker>(), checkCircuitInterval); } else { cachePolicy = Policy.NoOpAsync <DurableCircuitBreaker>(); } policyRegistry[key] = cachePolicy; return(cachePolicy); }
public bool TryGet <TPolicy>(string key, out TPolicy policy) where TPolicy : ICircuitBreakerPolicy { return(Registry.TryGet(key, out policy)); }