worker

package
v1.7.0 Latest Latest
Warning

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

Go to latest
Published: Feb 4, 2020 License: MIT Imports: 15 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
var WorkQueue = make(chan model.WorkRequest, 100)

WorkQueue is the global queue of work to dispatch

View Source
var WorkerQueue chan chan model.WorkRequest

WorkerQueue is the global queue of Workers

Functions

func RetrieveLogFile added in v1.5.0

func RetrieveLogFile(id, name, base string) (*os.File, error)

RetrieveLogFile retrieve work log with its name and id

func StartDispatcher

func StartDispatcher(nworkers int)

StartDispatcher is charged to start n workers.

Types

type ChanWriter

type ChanWriter struct {
	ByteChan chan []byte
}

ChanWriter is a simple writer to a channel of byte.

func (*ChanWriter) Write

func (c *ChanWriter) Write(p []byte) (int, error)

type Worker

type Worker struct {
	ID          int
	Work        chan model.WorkRequest
	WorkerQueue chan chan model.WorkRequest
	QuitChan    chan bool
}

Worker is a go routine in charge of executing a work.

func NewWorker

func NewWorker(id int, workerQueue chan chan model.WorkRequest) Worker

NewWorker creates, and returns a new Worker object. Its only argument is a channel that the worker can add itself to whenever it is done its work.

func (Worker) Start

func (w Worker) Start()

Start is the function to starts the worker by starting a goroutine. That is an infinite "for-select" loop.

func (Worker) Stop

func (w Worker) Stop()

Stop tells the worker to stop listening for work requests. Note that the worker will only stop *after* it has finished its work.

Jump to

Keyboard shortcuts

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