job

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Jan 18, 2024 License: BSD-3-Clause Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var TriggerRegistry = automarshal.NewRegistry[Trigger, ITrigger]()

Functions

func Listen

func Listen(name string, callback func()) (cancel func())

func ListenBuffered

func ListenBuffered(name string, callback func()) (cancel func())

func Signal

func Signal(name string)

Types

type ITrigger

type ITrigger interface {
	Listen(callback func()) (remove func())
}

type Job

type Job struct {
	context.Context
	Manifest *Manifest
	ID       string
	Main     task.Task
	Cancel   context.CancelFunc
	Options  task.Options
	Logger   *clog.Logger
	Launch   *Trigger
	Drop     *Trigger

	Whiteboard atomic.Pointer[task.Whiteboard]
	// contains filtered or unexported fields
}

func Parse

func Parse(data string) (j *Job, err error)

func (*Job) Join

func (s *Job) Join(c context.Context) error

func (*Job) Kill

func (s *Job) Kill()

func (*Job) Ready

func (j *Job) Ready(ctx context.Context)

func (*Job) Restart

func (s *Job) Restart()

func (*Job) Start

func (s *Job) Start() (w task.Worker, started bool)

func (*Job) Status

func (s *Job) Status() task.StatusOrError

func (*Job) Stop

func (s *Job) Stop()

func (*Job) Traverse

func (s *Job) Traverse(fn func(task.Worker) bool)

func (*Job) UnmarshalJSON

func (j *Job) UnmarshalJSON(data []byte) error

func (*Job) Worker

func (s *Job) Worker() task.Worker

type LoggerOptions

type LoggerOptions = clog.Options

type Manifest

type Manifest struct {
	ID            string    `json:"id,omitempty"` // The task's ID.
	Main          task.Task `json:"main"`         // The main task to run.
	Launch        *Trigger  `json:"launch,omitempty"`
	Drop          *Trigger  `json:"drop,omitempty"`
	task.Options            // The task options.
	LoggerOptions           // The log configuration.
}

func (*Manifest) Spawn

func (recipe *Manifest) Spawn() (j *Job, err error)

func (*Manifest) SpawnAt

func (recipe *Manifest) SpawnAt(j *Job) (err error)

type Trigger

type Trigger struct {
	ITrigger
	automarshal.ID
}

func (Trigger) MarshalJSON

func (t Trigger) MarshalJSON() ([]byte, error)

func (*Trigger) UnmarshalJSON

func (t *Trigger) UnmarshalJSON(data []byte) error

type TriggerAlways

type TriggerAlways struct{}

func (TriggerAlways) Listen

func (t TriggerAlways) Listen(callback func()) (remove func())

func (*TriggerAlways) UnmarshalInline

func (h *TriggerAlways) UnmarshalInline(text string) (err error)

type TriggerAny

type TriggerAny struct {
	List []Trigger `json:"list"`
}

func (TriggerAny) Listen

func (t TriggerAny) Listen(callback func()) (remove func())

type TriggerBoot

type TriggerBoot struct {
}

func (TriggerBoot) Listen

func (t TriggerBoot) Listen(callback func()) (remove func())

func (*TriggerBoot) UnmarshalInline

func (h *TriggerBoot) UnmarshalInline(text string) (err error)

type TriggerEvery

type TriggerEvery struct {
	Duration util.ParsableDuration `json:"duration"`
}

func (TriggerEvery) Listen

func (t TriggerEvery) Listen(callback func()) (remove func())

func (*TriggerEvery) UnmarshalInline

func (h *TriggerEvery) UnmarshalInline(text string) (err error)

type TriggerNever

type TriggerNever struct{}

func (TriggerNever) Listen

func (t TriggerNever) Listen(callback func()) (remove func())

func (*TriggerNever) UnmarshalInline

func (h *TriggerNever) UnmarshalInline(text string) (err error)

type TriggerOn

type TriggerOn struct {
	Name string `json:"name"`
}

func (TriggerOn) Listen

func (t TriggerOn) Listen(callback func()) (remove func())

func (*TriggerOn) UnmarshalInline

func (h *TriggerOn) UnmarshalInline(text string) (err error)

func (*TriggerOn) WithDefaults

func (h *TriggerOn) WithDefaults(i automarshal.ID)

type TriggerOnce

type TriggerOnce struct {
	Name string `json:"name"`
}

func (TriggerOnce) Listen

func (t TriggerOnce) Listen(callback func()) (remove func())

func (*TriggerOnce) UnmarshalInline

func (h *TriggerOnce) UnmarshalInline(text string) (err error)

func (*TriggerOnce) WithDefaults

func (h *TriggerOnce) WithDefaults(i automarshal.ID)

Jump to

Keyboard shortcuts

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