utils

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: May 16, 2022 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ContextFromChan

func ContextFromChan(chStop <-chan struct{}) (context.Context, context.CancelFunc)

ContextFromChan creates a context that finishes when the provided channel receives or is closed. When channel closes, the ctx.Err() will always be context.Canceled NOTE: Spins up a goroutine that exits on cancellation. REMEMBER TO CALL CANCEL OTHERWISE IT CAN LEAD TO MEMORY LEAKS

func WithJitter

func WithJitter(d time.Duration) time.Duration

WithJitter adds +/- 10% to a duration

Types

type Duration

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

Duration is a non-negative time duration.

func NewDuration

func NewDuration(d time.Duration) (Duration, error)

func (Duration) Duration

func (d Duration) Duration() time.Duration

func (Duration) MarshalJSON

func (d Duration) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaler interface.

func (Duration) MarshalText

func (d Duration) MarshalText() ([]byte, error)

MarshalText implements the text.Marshaler interface.

func (*Duration) Scan

func (d *Duration) Scan(v interface{}) (err error)

func (Duration) String

func (d Duration) String() string

func (*Duration) UnmarshalJSON

func (d *Duration) UnmarshalJSON(input []byte) error

UnmarshalJSON implements the json.Unmarshaler interface.

func (*Duration) UnmarshalText

func (d *Duration) UnmarshalText(input []byte) error

UnmarshalText implements the text.Unmarshaler interface.

func (Duration) Value

func (d Duration) Value() (driver.Value, error)

type StartStopOnce

type StartStopOnce struct {
	sync.RWMutex // lock is held during startup/shutdown, RLock is held while executing functions dependent on a particular state
	// contains filtered or unexported fields
}

StartStopOnce can be embedded in a struct to help implement types.Service.

func (*StartStopOnce) Healthy

func (s *StartStopOnce) Healthy() error

Healthy returns ErrNotStarted if the state is not started. Override this per-service with more specific implementations.

func (*StartStopOnce) IfNotStopped

func (s *StartStopOnce) IfNotStopped(f func()) (ok bool)

IfNotStopped runs the func and returns true if in any state other than Stopped

func (*StartStopOnce) IfStarted

func (s *StartStopOnce) IfStarted(f func()) (ok bool)

IfStarted runs the func and returns true only if started, otherwise returns false

func (*StartStopOnce) Ready

func (s *StartStopOnce) Ready() error

Ready returns ErrNotStarted if the state is not started.

func (*StartStopOnce) StartOnce

func (s *StartStopOnce) StartOnce(name string, fn func() error) error

StartOnce sets the state to Started

func (*StartStopOnce) State

func (s *StartStopOnce) State() startStopOnceState

State retrieves the current state

func (*StartStopOnce) StopOnce

func (s *StartStopOnce) StopOnce(name string, fn func() error) error

StopOnce sets the state to Stopped

Jump to

Keyboard shortcuts

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