pkgsitegolang.org/x/pkgsite/internal/poller Index | Files

package poller

import "golang.org/x/pkgsite/internal/poller"

Package poller supports periodic polling to load a value.

Index

Types

type Getter

type Getter func(context.Context) (any, error)

A Getter returns a value.

type Poller

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

func New(initial any, 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

func (p *Poller) Current() any

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

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

Poll calls p's getter immediately and synchronously.

func (*Poller) Start

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.

Source Files

poller.go

Version
v0.0.0-20250218150137-224a1368cf02 (latest)
Published
Feb 18, 2025
Platform
linux/amd64
Imports
3 packages
Last checked
2 months ago

Tools for package owners.