circuitbreaker

package
v1.25.0-114.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 1, 2024 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Settings

type Settings struct {
	// Function to get the dynamic settings. Accepted keys:
	// - maxRequests: Maximum number of requests allowed to pass through when
	//   it is in half-open state (default 1).
	// - interval (seconds): Cyclic period in closed state to clear the internal counts;
	//   if interval is 0, then it never clears the internal counts (default 0).
	// - timeout (seconds): Period of open state before changing to half-open state (default 60).`
	SettingsFn func() map[string]any
	// Min interval time between calls to SettingsFn. If not set or zero, then it defaults
	// to 1 minute.
	SettingsEvalInterval time.Duration

	Name          string
	ReadyToTrip   func(counts gobreaker.Counts) bool
	OnStateChange func(name string, from gobreaker.State, to gobreaker.State)
}

type TwoStepCircuitBreaker

type TwoStepCircuitBreaker interface {
	Name() string
	State() gobreaker.State
	Counts() gobreaker.Counts
	Allow() (done func(success bool), err error)
}

type TwoStepCircuitBreakerWithDynamicSettings

type TwoStepCircuitBreakerWithDynamicSettings struct {
	// contains filtered or unexported fields
}

TwoStepCircuitBreakerWithDynamicSettings is a wrapper of gobreaker.TwoStepCircuitBreaker that calls the settingsFn everytime the Allow function is called and replaces the circuit breaker if there is a change in the settings object. Note that in this case, the previous state of the circuit breaker is lost.

func NewTwoStepCircuitBreakerWithDynamicSettings

func NewTwoStepCircuitBreakerWithDynamicSettings(
	settings Settings,
) *TwoStepCircuitBreakerWithDynamicSettings

func (*TwoStepCircuitBreakerWithDynamicSettings) Allow

func (c *TwoStepCircuitBreakerWithDynamicSettings) Allow() (done func(success bool), err error)

func (*TwoStepCircuitBreakerWithDynamicSettings) Counts

func (*TwoStepCircuitBreakerWithDynamicSettings) Name

func (*TwoStepCircuitBreakerWithDynamicSettings) State

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL