worker_watcher

package
v2.0.0-beta13 Latest Latest
Warning

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

Go to latest
Published: Jan 27, 2021 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Stack

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

func NewWorkersStack

func NewWorkersStack(initialNumOfWorkers uint64) *Stack

func (*Stack) Destroy

func (stack *Stack) Destroy(ctx context.Context)

we also have to give a chance to pool to Push worker (return it)

func (*Stack) FindAndRemoveByPid

func (stack *Stack) FindAndRemoveByPid(pid int64) bool

func (*Stack) IsEmpty

func (stack *Stack) IsEmpty() bool

func (*Stack) Pop

func (stack *Stack) Pop() (*worker.SyncWorkerImpl, bool)

func (*Stack) Push

func (stack *Stack) Push(w worker.BaseProcess)

Push worker back to the stack If stack in destroy state, Push will provide 100ms window to unlock the mutex

func (*Stack) Reset

func (stack *Stack) Reset()

func (*Stack) Workers

func (stack *Stack) Workers() []worker.SyncWorker

Workers return copy of the workers in the stack

type Watcher

type Watcher interface {
	// AddToWatch used to add stack to wait its state
	AddToWatch(workers []worker.SyncWorker) error

	// GetFreeWorker provide first free worker
	GetFreeWorker(ctx context.Context) (worker.SyncWorker, error)

	// PutWorker enqueues worker back
	PushWorker(w worker.SyncWorker)

	// AllocateNew used to allocate new worker and put in into the WorkerWatcher
	AllocateNew() error

	// Destroy destroys the underlying stack
	Destroy(ctx context.Context)

	// WorkersList return all stack w/o removing it from internal storage
	WorkersList() []worker.SyncWorker

	// RemoveWorker remove worker from the stack
	RemoveWorker(wb worker.SyncWorker) error
}

func NewSyncWorkerWatcher

func NewSyncWorkerWatcher(allocator worker.Allocator, numWorkers uint64, events events.Handler) Watcher

workerCreateFunc can be nil, but in that case, dead stack will not be replaced

Jump to

Keyboard shortcuts

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