Documentation
¶
Overview ¶
Package goroutinemap implements a data structure for managing go routines by name. It prevents the creation of new go routines if an existing go routine with the same name exists.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func IsAlreadyExists ¶
func IsAlreadyExists(err error) bool
IsAlreadyExists returns true if an error returned from GoRoutineMap indicates a new operation can not be started because an operation with the same operation name is already executing.
func NewAlreadyExistsError ¶ added in v1.3.4
func NewAlreadyExistsError(operationName string) error
NewAlreadyExistsError returns a new instance of AlreadyExists error.
Types ¶
type GoRoutineMap ¶
type GoRoutineMap interface {
// Run adds operation name to the list of running operations and spawns a
// new go routine to execute the operation.
// If an operation with the same operation name already exists, an
// AlreadyExists or ExponentialBackoff error is returned.
// Once the operation is complete, the go routine is terminated and the
// operation name is removed from the list of executing operations allowing
// a new operation to be started with the same operation name without error.
Run(operationName string, operationFunc func() error) error
// Wait blocks until all operations are completed. This is typically
// necessary during tests - the test should wait until all operations finish
// and evaluate results after that.
Wait()
}
GoRoutineMap defines the supported set of operations.
func NewGoRoutineMap ¶
func NewGoRoutineMap(exponentialBackOffOnError bool) GoRoutineMap
NewGoRoutineMap returns a new instance of GoRoutineMap.
Directories
¶
Path | Synopsis |
---|---|
Package exponentialbackoff contains logic for implementing exponential backoff for GoRoutineMap and NestedPendingOperations.
|
Package exponentialbackoff contains logic for implementing exponential backoff for GoRoutineMap and NestedPendingOperations. |
Click to show internal directories.
Click to hide internal directories.