task

package module
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Apr 27, 2021 License: MIT Imports: 15 Imported by: 9

README

task

GoRoutines Task Manager Utils

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrNoTasks = errors.New("no tasks")
View Source
var (
	ErrTaskRunning = errors.New("Task is running")
)

Functions

func MustRun

func MustRun(done func(), t ...Task) error

func NewStartableTask

func NewStartableTask(start func(done ...func()) (err error), stop func()) *startableTask

func NewTask

func NewTask(run func() (err error), stop ...func()) *task

func Run

func Run(done func(state *State), t ...Task) (err error)

func StopWait

func StopWait(stoper Stoper)

Types

type Appender

type Appender interface {
	SliceGetter
	AddTask(t ...Task) error
	PostRun(f ...func())
	Context() context.Context
	WithContext(ctx context.Context) (done func())
}

func NewAppender

func NewAppender() Appender

type CmdTask

type CmdTask struct {
	Cmd      *exec.Cmd
	Log      logging.Logger
	PreStart func(t *CmdTask)
	// contains filtered or unexported fields
}

func NewCmdTask

func NewCmdTask(cmd *exec.Cmd) *CmdTask

func (*CmdTask) LogInfo

func (t *CmdTask) LogInfo()

func (*CmdTask) OnDone

func (t *CmdTask) OnDone(f ...func()) *CmdTask

func (*CmdTask) Run

func (t *CmdTask) Run() (err error)

func (*CmdTask) SetLog

func (t *CmdTask) SetLog(log logging.Logger) *CmdTask

func (*CmdTask) Setup

func (t *CmdTask) Setup(appender Appender) error

func (*CmdTask) Start

func (t *CmdTask) Start(done func()) (stop Stoper, err error)

type ErrNotRunning

type ErrNotRunning struct {
	Task Task
}

func (ErrNotRunning) Error

func (this ErrNotRunning) Error() string

type Factory

type Factory interface {
	Task
	Factory() Task
}

type FactoryFunc

type FactoryFunc func() Task

func (FactoryFunc) Factory

func (f FactoryFunc) Factory() Task

func (FactoryFunc) Run

func (f FactoryFunc) Run() error

func (FactoryFunc) Setup

func (f FactoryFunc) Setup(appender Appender) (err error)

func (FactoryFunc) Start

func (f FactoryFunc) Start(done func()) (stop Stoper, err error)

type OnDoneEvent

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

func (*OnDoneEvent) CallDoneFuncs

func (od *OnDoneEvent) CallDoneFuncs()

func (*OnDoneEvent) DoneFuncs

func (od *OnDoneEvent) DoneFuncs() []func()

func (*OnDoneEvent) OnDone

func (od *OnDoneEvent) OnDone(f ...func())

type PostRunCallback

type PostRunCallback interface {
	TaskPosRun()
}

type PostRunSlice

type PostRunSlice []func()

type PostStartCallback

type PostStartCallback interface {
	PostTaskStart(s *State)
}

type PreRunCallback

type PreRunCallback interface {
	TaskPreRun(ta Appender) error
}

type PreRunSlice

type PreRunSlice []func(ap Appender) error

type PreStartCallback

type PreStartCallback interface {
	PreTaskStart(s *State)
}

type PreparedTasks

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

func Prepare

func Prepare(t ...Task) (pt *PreparedTasks, err error)

func (*PreparedTasks) Start

func (this *PreparedTasks) Start(done ...func()) (state *State, err error)

func (*PreparedTasks) Tasks

func (this *PreparedTasks) Tasks() Slice

type Runner

type Runner struct {
	*State

	*OnDoneEvent
	Signal os.Signal
	// contains filtered or unexported fields
}

func NewRunner

func NewRunner(t ...Task) *Runner

func (*Runner) Add

func (r *Runner) Add(t ...Task) (err error)

func (*Runner) GetLogger

func (this *Runner) GetLogger() logging.Logger

func (*Runner) MustRunWait

func (r *Runner) MustRunWait()

func (*Runner) MustSigRun

func (r *Runner) MustSigRun(sig ...os.Signal)

func (*Runner) Run

func (r *Runner) Run() (done chan interface{}, err error)

func (*Runner) RunWait

func (r *Runner) RunWait() (err error)

func (*Runner) SetLog

func (r *Runner) SetLog(log logging.Logger) *Runner

func (*Runner) SigRun

func (r *Runner) SigRun(sig ...os.Signal) (done chan interface{}, err error)

func (*Runner) SigRunWait

func (r *Runner) SigRunWait(sig ...os.Signal) (err error)

func (*Runner) SigStop

func (r *Runner) SigStop() *Runner

func (*Runner) SignalBinder

func (this *Runner) SignalBinder() signald.Binder

type Slice

type Slice []Task

func (Slice) Run

func (tasks Slice) Run() (err error)

func (Slice) Setup

func (tasks Slice) Setup(appender Appender) (err error)

func (Slice) Start

func (tasks Slice) Start(done func()) (s Stoper, err error)

type SliceGetter

type SliceGetter interface {
	Tasks() Slice
}

type State

type State struct {
	OnDoneEvent
	Start time.Time
	End   time.Time
	// contains filtered or unexported fields
}

func (*State) Add

func (s *State) Add(tasks ...Task) (err error)

func (State) IsRunning

func (s State) IsRunning() bool

func (State) Len

func (s State) Len() int

func (*State) Stop

func (s *State) Stop()

func (*State) StopWait

func (s *State) StopWait()

func (State) Stopers

func (s State) Stopers() (stopers Stopers)

func (State) Tasks

func (s State) Tasks() (tasks Slice)

func (*State) Wait

func (s *State) Wait()

type StopWaiter

type StopWaiter interface {
	StopWait()
}

type Stoper

type Stoper interface {
	Stop()
	IsRunning() bool
}

func MustStart

func MustStart(done func(), t ...Task) (s Stoper, err error)

func NewStopDoner

func NewStopDoner(stop func()) (s Stoper, done func())

func NewStoper

func NewStoper(stop func(), running func() bool) (s Stoper)

func Start

func Start(done func(state *State), t ...Task) (s Stoper, err error)

type Stopers

type Stopers []Stoper

func (Stopers) IsRunning

func (s Stopers) IsRunning() bool

func (*Stopers) IsRunningOrRemove

func (s *Stopers) IsRunningOrRemove() (ok bool)

func (Stopers) Stop

func (s Stopers) Stop()

type Task

type Task interface {
	Start(done func()) (stop Stoper, err error)
}

type TaskAppender

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

func (*TaskAppender) AddSetup

func (this *TaskAppender) AddSetup(s ...func(ta Appender) error)

func (*TaskAppender) AddTask

func (this *TaskAppender) AddTask(t ...Task) (err error)

func (*TaskAppender) Context

func (this *TaskAppender) Context() context.Context

func (*TaskAppender) PostRun

func (this *TaskAppender) PostRun(f ...func())

func (*TaskAppender) Setup

func (this *TaskAppender) Setup(tar Appender) (err error)

func (*TaskAppender) TaskPostRun

func (this *TaskAppender) TaskPostRun()

func (*TaskAppender) Tasks

func (this *TaskAppender) Tasks() Slice

func (*TaskAppender) WithContext

func (this *TaskAppender) WithContext(ctx context.Context) (done func())

type TaskFactory

type TaskFactory struct {
	FactoryFunc func() Task
	// contains filtered or unexported fields
}

func (*TaskFactory) Factory

func (f *TaskFactory) Factory() Task

func (*TaskFactory) Run

func (f *TaskFactory) Run() (err error)

func (*TaskFactory) Setup

func (f *TaskFactory) Setup(appender Appender) (err error)

func (*TaskFactory) Start

func (f *TaskFactory) Start(done func()) (stop Stoper, err error)

type TaskProxy

type TaskProxy struct {
	T         Task
	SetupFunc func(appender Appender) error
	RunFunc   func() error
	StartFunc func(done func()) (stop Stoper, err error)
}

func (*TaskProxy) Run

func (px *TaskProxy) Run() error

func (*TaskProxy) Setup

func (px *TaskProxy) Setup(appender Appender) error

func (*TaskProxy) Start

func (px *TaskProxy) Start(done func()) (stop Stoper, err error)

type TaskRunner

type TaskRunner interface {
	Run() error
}

type TaskSetup

type TaskSetup func(appender Appender) error

func (TaskSetup) Run

func (TaskSetup) Run() error

func (TaskSetup) Setup

func (tf TaskSetup) Setup(appender Appender) error

func (TaskSetup) Start

func (TaskSetup) Start(done func()) (stop Stoper, err error)

type TaskSetupAppender

type TaskSetupAppender interface {
	Setup(appender Appender) error
}

type TaskSetupError

type TaskSetupError struct {
	Task  Task
	Index int
	// contains filtered or unexported fields
}

func (*TaskSetupError) Cause

func (se *TaskSetupError) Cause() error

func (*TaskSetupError) Error

func (se *TaskSetupError) Error() string

type TaskSetuper

type TaskSetuper interface {
	Setup() error
}

type Tasks

type Tasks struct {
	TaskAppender
	// contains filtered or unexported fields
}

func (*Tasks) GetPreRun

func (tasks *Tasks) GetPreRun() []func(ta Appender) error

func (*Tasks) Log

func (tasks *Tasks) Log() logging.Logger

func (*Tasks) PreRun

func (tasks *Tasks) PreRun(f ...func(ta Appender) error)

func (*Tasks) Run

func (tasks *Tasks) Run() (err error)

func (*Tasks) SetLog

func (tasks *Tasks) SetLog(log logging.Logger)

func (*Tasks) Start

func (tasks *Tasks) Start(done func()) (stop Stoper, err error)

func (*Tasks) TaskPreRun

func (tasks *Tasks) TaskPreRun(ts *TaskAppender) (err error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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