worker

package
v0.0.0-...-c83d288 Latest Latest
Warning

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

Go to latest
Published: Jun 11, 2018 License: MIT Imports: 5 Imported by: 3

Documentation

Overview

Package worker provides a simple asynchronous worker queue.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Job

type Job interface {
	// Perform invokes the job.
	Perform() error
}

Job defines the interface for performing asynchronous work.

type JobFunc

type JobFunc func() error

JobFunc allows bare functions to implement the Job interface.

func (JobFunc) Perform

func (j JobFunc) Perform() error

type Scheduler

type Scheduler struct {

	// Acceptable time to wait before forcefully quitting when shutting down
	// gracefully.
	ShutdownTimeout time.Duration
	// contains filtered or unexported fields
}

Scheduler is the entry-point for scheduling jobs to run asynchronously.

func New

func New(logger log.Logger) *Scheduler

New creates a new scheduler, ready to use.

func NewWithTick

func NewWithTick(logger log.Logger, delay time.Duration) *Scheduler

NewWithTick creates a new scheduler with a tick duration of delay.

func (*Scheduler) Loop

func (s *Scheduler) Loop()

Loop begins a worker goroutine that takes care of running any jobs.

func (*Scheduler) RepeatEvery

func (s *Scheduler) RepeatEvery(j Job, d time.Duration) Job

RepeatEvery wraps a job, rescheduling it after each successful run.

func (*Scheduler) RepeatFuncEvery

func (s *Scheduler) RepeatFuncEvery(j func() error, d time.Duration) Job

RepeatFuncEvery is a convenience method for wrapping a bare func as a repeated job.

func (*Scheduler) Schedule

func (s *Scheduler) Schedule(j Job) error

Schedule adds a job to be performed.

func (*Scheduler) ScheduleAt

func (s *Scheduler) ScheduleAt(j Job, t time.Time) error

ScheduleAt adds a job to be performed at a specific time.

func (*Scheduler) ScheduleFunc

func (s *Scheduler) ScheduleFunc(j func() error) error

ScheduleFunc is a convenience method accepting a function as a job.

func (*Scheduler) ScheduleFuncAt

func (s *Scheduler) ScheduleFuncAt(j func() error, t time.Time) error

ScheduleFuncAt is a convenience method for adding a bare func as a job.

func (*Scheduler) Shutdown

func (s *Scheduler) Shutdown() error

Shutdown performs a graceful shutdown of the scheduler.

Jump to

Keyboard shortcuts

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