worker

package
v1.0.8284-a1246e5 Latest Latest
Warning

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

Go to latest
Published: Nov 14, 2023 License: MIT Imports: 6 Imported by: 0

Documentation

Overview

Package worker runs a service worker loop with observability and back-off for no work found.

It is used by various `ex` packages internally, and can be used for any regular work your service might need to do, such as consuming queue-like data sources.

Index

Constants

This section is empty.

Variables

View Source
var ErrShouldBackoff = errors.New("should back off")

Functions

func Run

func Run(ctx context.Context, cfg Config)

Run a worker, which calls WorkFunc in a loop. Run exits when the context is cancelled.

Types

type Config

type Config struct {
	Name string
	// NoWorkBackoff is the backoff strategy to use if the WorkFunc indicates a backoff should happen
	NoWorkBackOff backoff.BackOff
	// MaxWorkTime is the duration after which the context passed to the WorkFunc will be cancelled.
	MaxWorkTime time.Duration
	// MinWorkTime is the minimum duration each work loop can take. The WorkFunc will not be invoked any sooner
	// than the last invocation and MinWorkTime. This can be used to throttle a busy worker.
	MinWorkTime time.Duration
	// WorkFunc should return ErrShouldBackoff if it wants to back off, or set BackoffOnAllErrors
	WorkFunc func(ctx context.Context) error
	// If backoff is desired for any returned error
	BackoffOnAllErrors bool
	// contains filtered or unexported fields
}

Jump to

Keyboard shortcuts

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