thread

package module
v0.0.0-...-dcb84ce Latest Latest
Warning

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

Go to latest
Published: Sep 9, 2019 License: MIT Imports: 8 Imported by: 0

README

go-thread

Documentation

Index

Constants

View Source
const DefaultInterval = 30 * time.Second

DefaultInterval ...

Variables

This section is empty.

Functions

This section is empty.

Types

type Basic

type Basic interface {
	SetInterval(duration time.Duration)
	Interval() time.Duration

	Manager() Manager
}

Basic ...

type CallAble

type CallAble interface {
	Call(Threader, interface{}) error
}

CallAble ...

type Manage

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

Manage ...

func (*Manage) AddThread

func (m *Manage) AddThread(threader interface{})

SetThread ...

func (*Manage) Done

func (m *Manage) Done()

Done ...

func (*Manage) GetThread

func (m *Manage) GetThread(id string) Threader

GetThread ...

func (*Manage) HasThread

func (m *Manage) HasThread(id string) bool

HasThread ...

func (*Manage) PushTo

func (m *Manage) PushTo(id string, v interface{}) error

PushTo ...

func (*Manage) Register

func (m *Manage) Register(ops ...Options)

Register ...

func (*Manage) Start

func (m *Manage) Start()

Start ...

func (*Manage) Stop

func (m *Manage) Stop()

Stop ...

func (*Manage) Wait

func (m *Manage) Wait()

Wait ...

type Manager

type Manager interface {
	Start()
	Wait()
	Stop()
	PushTo(id string, v interface{}) error
	GetThread(id string) Threader
	AddThread(threader Threader) string
	HasThread(id string) bool
	Register(ops ...Options)
}

Manager ...

func NewManager

func NewManager(ts ...Threader) Manager

NewManager create a thread manager manager is not always thread safe so all register need before running

type NoStatusThreader

type NoStatusThreader interface {
	State() State
	SetState(state State)
	Done() <-chan bool
	Finished()
}

NoStatusThreader ...

type Options

type Options func(manage *Manage)

Options ...

type PushFunc

type PushFunc func(interface{})

PushFunc ...

type Pusher

type Pusher interface {
	Push(interface{}) error
}

Pusher ...

type Runnable

type Runnable interface {
	Run(context.Context)
}

Runnable ...

type Runner

type Runner interface {
	Runnable
	BeforeRun(manager Manager)
	AfterRun(manager Manager)
}

Runner ...

type State

type State int

State ...

const (
	StateWaiting State = iota
	StateRunning
	StateStop
)

State ...

type Thread

type Thread struct {
	CallAble
	// contains filtered or unexported fields
}

Thread ...

func (*Thread) AfterRun

func (t *Thread) AfterRun(manager Manager)

AfterRun ...

func (*Thread) BeforeRun

func (t *Thread) BeforeRun(manager Manager)

BeforeRun ...

func (*Thread) Done

func (t *Thread) Done() <-chan bool

Done ...

func (*Thread) Finished

func (t *Thread) Finished()

Finished ...

func (*Thread) ID

func (t *Thread) ID() string

ID ...

func (*Thread) Interval

func (t *Thread) Interval() time.Duration

Interval ...

func (*Thread) Manager

func (t *Thread) Manager() Manager

Manager ...

func (*Thread) Push

func (t *Thread) Push(v interface{}) error

Push ...

func (*Thread) Run

func (t *Thread) Run(ctx context.Context)

Run ...

func (*Thread) SetInterval

func (t *Thread) SetInterval(duration time.Duration)

SetInterval ...

func (*Thread) SetState

func (t *Thread) SetState(state State)

SetState ...

func (*Thread) Start

func (t *Thread) Start()

func (*Thread) State

func (t *Thread) State() State

State ...

func (*Thread) Stop

func (t *Thread) Stop()

type Threader

type Threader interface {
	NoStatusThreader
	Runner
	Basic
	Pusher
	ID() string
}

Threader ...

func NewThreader

func NewThreader(call CallAble) Threader

NewThreader ...

Jump to

Keyboard shortcuts

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