task

package
v0.0.3 Latest Latest
Warning

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

Go to latest
Published: Oct 19, 2020 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewController

func NewController() *defaultController

func NewHandle

func NewHandle(name string, f cleanFunc) *entity

Types

type Controller

type Controller interface {
	// 判断任务是否正在执行,是返回true,否则返回false
	IsRunning(taskName string) bool

	// 增加一个任务
	// Param:delta 任务步骤数
	// Return: Handler 任务handler,用于控制任务完成情况
	// Return:error 成功返回true,否则返回false
	AddTask(taskName string) (Handle, error)

	// 查询任务Handle
	// Return: Handler 任务handler,用于控制任务完成情况
	FindTask(taskName string) Handle
}

type Handle

type Handle interface {
	// 获得任务名称
	Name() string

	// 增加任务步骤,当Done/TryDone调用次数等于所有Add delta总和时视为任务完成
	Add(delta int)

	// 标识任务完成,当所有任务都完成则会清除Controller的任务标记
	// 注意:当Done调用次数大于Add的delta总数时会触发panic
	Done()

	// 与Done作用一致
	// 不同的是TryDone调用次数大于Add的delta总数时不会panic,会返回error
	TryDone() error

	// 等待任务完成
	// 当所有任务步骤都完成或者到达参数中的指定超时时间会返回,否则等待
	// 参数为负数为一直等待,直到任务完成
	Wait(time.Duration)
}

Jump to

Keyboard shortcuts

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