public async Task Execute(IJobExecutionContext context) { var day = new Random().Next(1, 365 * 10); RestRequest request = new RestRequest($"clima/{day}", Method.GET); CircuitBreaker.Net.CircuitBreaker circuitBreaker = new CircuitBreaker.Net.CircuitBreaker( TaskScheduler.Default, 3, TimeSpan.FromMilliseconds(100), TimeSpan.FromMilliseconds(10000)); try { await Client.ExecuteGetTaskAsync(request); } catch (CircuitBreakerOpenException) { } catch (CircuitBreakerTimeoutException) { } catch (Exception) { } }
public RedisStorage(IDatabase db) { _db = db; _circuitBreaker = new CircuitBreaker.Net.CircuitBreaker( TaskScheduler.Default, maxFailures: MAX_FAILURES, invocationTimeout: TimeSpan.FromMilliseconds(INVOCATION_TIMEOUT), circuitResetTimeout: TimeSpan.FromMilliseconds(CIRCUIT_RESET_TIMEOUT) ); }
public async Task Execute(Object source, EventArgs e) { var CircuitBreaker = new CircuitBreaker.Net.CircuitBreaker( TaskScheduler.Default, maxFailures: 2, invocationTimeout: TimeSpan.FromMilliseconds(_breaker_invoc_timeout), circuitResetTimeout: TimeSpan.FromMilliseconds(_breaker_reset_timeout) ); try { await CircuitBreaker.ExecuteAsync(new Func <Task>(async() => await sendAsync(source, e))); } catch (CircuitBreakerOpenException) { if (_debug_mode.Equals(true)) { Debug.WriteLine("E-DNA Exception: "); Debug.Indent(); Debug.WriteLine("CircuitBreakerOpenException"); Debug.Unindent(); Debug.Flush(); } } catch (CircuitBreakerTimeoutException) { if (_debug_mode.Equals(true)) { Debug.WriteLine("E-DNA Exception: "); Debug.Indent(); Debug.WriteLine("CircuitBreakerTimeoutException"); Debug.Unindent(); Debug.Flush(); } } catch (Exception) { if (_debug_mode.Equals(true)) { Debug.WriteLine("E-DNA Exception: "); Debug.Indent(); Debug.WriteLine("Exception"); Debug.Unindent(); Debug.Flush(); } } }
static void Main(string[] args) { Console.WriteLine("Hello World!"); Program hola = new Program(); var circuitBreaker = new CircuitBreaker.Net.CircuitBreaker( TaskScheduler.Default, maxFailures: 2, invocationTimeout: TimeSpan.FromMilliseconds(4000), circuitResetTimeout: TimeSpan.FromMilliseconds(10000)); try { // perform a potentially fragile call through the circuit breaker circuitBreaker.Execute(hola.hola); // or its async version // await circuitBreaker.ExecuteAsync(externalService.CallAsync); } catch (CircuitBreakerOpenException) { Console.WriteLine("Hello Open!"); } catch (CircuitBreakerTimeoutException) { Console.WriteLine("Tiempo Out!"); } catch (Exception) { Console.WriteLine("Hello World!"); } try { // perform a potentially fragile call through the circuit breaker circuitBreaker.Execute(hola.hola); // or its async version // await circuitBreaker.ExecuteAsync(externalService.CallAsync); } catch (CircuitBreakerOpenException) { Console.WriteLine("Hello Open!"); } catch (CircuitBreakerTimeoutException) { Console.WriteLine("Tiempo Out!"); } catch (Exception) { Console.WriteLine("Hello World!"); } try { // perform a potentially fragile call through the circuit breaker circuitBreaker.Execute(hola.hola); // or its async version // await circuitBreaker.ExecuteAsync(externalService.CallAsync); } catch (CircuitBreakerOpenException) { Console.WriteLine("Hello Open!"); } catch (CircuitBreakerTimeoutException) { Console.WriteLine("Tiempo Out!"); } catch (Exception) { Console.WriteLine("Hello World!"); } }