troops

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

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

Go to latest
Published: Aug 25, 2020 License: MIT Imports: 3 Imported by: 0

README

troops

A Goroutine pool lib

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ILogger

type ILogger interface {
	Infof(format string, v ...interface{})
	Errorf(format string, v ...interface{})
}

type IWorker

type IWorker interface {
	Do(*Job)
	Stop()
}

type Job

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

type Soldier

type Soldier struct {
	ID      int64
	JobChan chan *Job
	Pool    *Troops
	Quit    chan struct{}
}

func (*Soldier) Do

func (s *Soldier) Do(j *Job)

func (*Soldier) Stop

func (s *Soldier) Stop()

type Troops

type Troops struct {
	MaxSize        int
	MinIdle        int
	MaxIdleTimeout time.Duration
	JobBuffer      chan *Job
	Soldiers       chan IWorker
	WorkingSize    int
	Log            ILogger
}

func NewTroops

func NewTroops(maxSize, minIdle int) *Troops

func (*Troops) Close

func (t *Troops) Close()

func (*Troops) DoJob

func (t *Troops) DoJob(f func(args ...interface{}), args ...interface{})

func (*Troops) Run

func (t *Troops) Run()

func (*Troops) SetLogger

func (t *Troops) SetLogger(logger ILogger)

Jump to

Keyboard shortcuts

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