pkgsite: Index | Files

package poller

import ""

Package poller supports periodic polling to load a value.


Package Files


type Getter Uses

type Getter func(context.Context) (interface{}, error)

A Getter returns a value.

type Poller Uses

type Poller struct {
    // contains filtered or unexported fields

A Poller maintains a current value, and refreshes it by periodically polling for a new value.

func New Uses

func New(initial interface{}, getter Getter, onError func(error)) *Poller

New creates a new poller with an initial value. The getter is invoked to obtain updated values. Errors returned from the getter are passed to onError.

func (*Poller) Current Uses

func (p *Poller) Current() interface{}

Current returns the current value. Initially, this is the value passed to New. After each successful poll, the value is updated. If a poll fails, the value remains unchanged.

func (*Poller) Poll Uses

func (p *Poller) Poll(ctx context.Context)

Poll calls p's getter immediately and synchronously.

func (*Poller) Start Uses

func (p *Poller) Start(ctx context.Context, period time.Duration)

Start begins polling in a separate goroutine, at the given period. To stop the goroutine, cancel the context passed to Start.

Package poller imports 3 packages (graph) and is imported by 4 packages. Updated 2021-01-15. Refresh now. Tools for package owners.