singleflight

package
v2.5.1 Latest Latest
Warning

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

Go to latest
Published: Oct 26, 2023 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Overview

Package singleflight provides a duplicate function call suppression mechanism.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Group

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

Group represents a class of work and forms a namespace in which units of work can be executed with duplicate suppression.

func (*Group) Count added in v2.4.0

func (g *Group) Count() int64

Count returns the number of currently active single flight entries.

func (*Group) Do

func (g *Group) Do(key string, fn func() (interface{}, error)) (interface{}, error)

Do executes and returns the results of the given function, making sure that only one execution is in-flight for a given key at a time. If a duplicate comes in, the duplicate caller waits for the original to complete and receives the same results.

func (*Group) Lock

func (g *Group) Lock(fn func())

Lock prevents single flights from occurring for the duration of the provided function. This allows users to clear caches or perform some operation in between running flights.

func (*Group) LongestRunningStartTime added in v2.4.0

func (g *Group) LongestRunningStartTime() time.Time

LongestRunningStartTime returns the timestamp at which the oldest single flight entry in the group was created. May be 0 if there are no running entries.

Jump to

Keyboard shortcuts

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