multi

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Dec 26, 2020 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

多任务

Index

Constants

View Source
const (
	DefaultTimeout  = 5 * time.Second
	DefaultLongTime = 200 * time.Millisecond
)

Variables

View Source
var (
	ErrTimeout  = errors.New("run timeout")
	ErrNotFound = errors.New("not found")
)

Functions

func RunTasks

func RunTasks(tasks []TaskHandler, timeout ...time.Duration) error

执行并发任务

Types

type Task

type Task struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func NewTasks

func NewTasks(task ...TaskHandler) *Task

实例化并发任务

func (*Task) Do

func (mt *Task) Do(work ...TaskHandler)

func (*Task) Errors

func (mt *Task) Errors() []error

获取任务执行结果

func (*Task) Run

func (mt *Task) Run(timeout ...time.Duration) error

执行并发任务

type TaskHandler

type TaskHandler func() error

type Work

type Work struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func NewWorks

func NewWorks(work ...WorkHandler) *Work

实例化并发任务

func (*Work) Data

func (w *Work) Data() []interface{}

仅获取数据结果

func (*Work) Do

func (w *Work) Do(work ...WorkHandler)

func (*Work) Errors

func (w *Work) Errors() []error

仅获取错误

func (*Work) Result

func (w *Work) Result() []*WorkResult

获取任务执行结果

func (*Work) Run

func (w *Work) Run(timeout ...time.Duration) error

执行并发任务

func (*Work) RunAndData

func (w *Work) RunAndData(timeout ...time.Duration) ([]interface{}, error)

执行并获取数据

func (*Work) RunAndResult

func (w *Work) RunAndResult(timeout ...time.Duration) ([]*WorkResult, error)

执行并获取结果

type WorkHandler

type WorkHandler func() (interface{}, error)

type WorkResult

type WorkResult struct {
	Data  interface{}
	Error error
}

func RunWorks

func RunWorks(works []WorkHandler, timeout ...time.Duration) ([]*WorkResult, error)

执行并发任务

Jump to

Keyboard shortcuts

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