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 Job ¶
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 ¶
func New(ctx context.Context, id model.ControllerKey) *Scheduler
New creates a new Scheduler.
func NewForTesting ¶ added in v0.104.1
func (*Scheduler) Singleton ¶
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.
func (*Scheduler) UpdatedControllerList ¶ added in v0.170.0
func (s *Scheduler) UpdatedControllerList(ctx context.Context, controllers []dal.Controller)
UpdatedControllerList synchronises the hash ring with the active controllers.