Module: Tenax
- Defined in:
- lib/tenax.rb,
lib/tenax/errors.rb,
lib/tenax/result.rb,
lib/tenax/runner.rb,
lib/tenax/profile.rb,
lib/tenax/version.rb,
lib/tenax/deprecation.rb,
lib/tenax/retry/policy.rb,
lib/tenax/configuration.rb,
lib/tenax/instrumentation.rb,
lib/tenax/retry/classifier.rb,
lib/tenax/retry/backoff/linear.rb,
lib/tenax/circuit_breaker/state.rb,
lib/tenax/circuit_breaker/store.rb,
lib/tenax/retry/backoff/constant.rb,
lib/tenax/retry/backoff/strategy.rb,
lib/tenax/circuit_breaker/breaker.rb,
lib/tenax/retry/backoff/exponential.rb,
lib/tenax/retry/backoff/decorrelated_jitter.rb,
sig/tenax.rbs
Defined Under Namespace
Modules: CircuitBreaker, Deprecation, Instrumentation, Retry Classes: CircuitOpenError, Configuration, ConfigurationError, Error, ExecutionError, InstrumentationError, InvalidOptionError, Profile, Result, RetryLimitExceeded, Runner, UnknownProfileError
Constant Summary collapse
- VERSION =
"0.1.0"
Class Method Summary collapse
-
.configuration ⇒ Tenax::Configuration
The global configuration object.
-
.configure {|config| ... } ⇒ Tenax::Configuration
Configure Tenax.
-
.reset! ⇒ Tenax::Configuration
Reset configuration to defaults.
-
.run(profile_name) { ... } ⇒ Tenax::Result
Execute a block under a named profile's resilience policy.
Class Method Details
.configuration ⇒ Tenax::Configuration
The global configuration object. Lazily instantiated.
40 41 42 |
# File 'lib/tenax.rb', line 40 def configuration @configuration ||= Configuration.new end |
.configure {|config| ... } ⇒ Tenax::Configuration
Configure Tenax. Yields the global Configuration object.
33 34 35 36 |
# File 'lib/tenax.rb', line 33 def configure yield configuration if block_given? configuration end |
.reset! ⇒ Tenax::Configuration
Reset configuration to defaults. Primarily for testing. After reset, configure may be called again.
47 48 49 |
# File 'lib/tenax.rb', line 47 def reset! @configuration = Configuration.new end |
.run(profile_name) { ... } ⇒ Tenax::Result
Execute a block under a named profile's resilience policy. The configuration is finalized (frozen) on first call.
57 58 59 60 |
# File 'lib/tenax.rb', line 57 def run(profile_name, &) configuration.finalize! unless configuration.frozen? Runner.new(configuration.profile(profile_name)).call(&) end |