scheduledtask

package
v0.398.0 Latest Latest
Warning

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

Go to latest
Published: Nov 20, 2024 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Overview

Package scheduledtask implements a task scheduler.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DALFunc added in v0.104.1

type DALFunc func(ctx context.Context, all bool) ([]dalmodel.Controller, error)

type Job

type Job func(ctx context.Context) (time.Duration, error)

A Job is a function that is scheduled to run periodically.

The Job itself controls its schedule by returning the next time it should run.

type Scheduler

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

Scheduler is a task scheduler for the controller.

Each job runs in its own goroutine.

The scheduler uses a consistent hash ring to attempt to ensure that jobs are only run on a single controller at a time. This is not guaranteed, however, as the hash ring is only updated periodically and controllers may have inconsistent views of the hash ring.

func New

New creates a new Scheduler.

func NewForTesting added in v0.104.1

func NewForTesting(ctx context.Context, id model.ControllerKey, clock clock.Clock, leaser leases.Leaser) *Scheduler

func (*Scheduler) Parallel

func (s *Scheduler) Parallel(name string, retry backoff.Backoff, job Job)

Parallel schedules a job to run on every controller.

func (*Scheduler) Singleton

func (s *Scheduler) Singleton(name string, retry backoff.Backoff, job Job)

Singleton schedules a job to attempt to run on only a single controller.

This is not guaranteed, however, as controllers may have inconsistent views of the hash ring.

Jump to

Keyboard shortcuts

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