runner

package
v1.1.10 Latest Latest
Warning

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

Go to latest
Published: Jun 16, 2019 License: MIT Imports: 5 Imported by: 0

Documentation

Overview

*runner用于按照顺序,执行程序任务操作,可作为cron作业或定时任务 runner 包可用于展示如何使用通道来监视程序的执行时间,如果程序运行时间太长,也可以 用 runner 包来终止程序。当开发需要调度后台处理任务的程序的时候,这种模式会很有用。这 个程序可能会作为 cron 作业执行,或者在基于定时任务的云环境(如 iron.io)里执行。 补充说明: 可能作为cron作业或基于定时任务,可以控制程序执行时间 使用通道来监控程序的执行时间,生命周期,甚至终止程序等。 我们这个程序叫runner,我们可以称之为执行者,它可以在后台执行任何任务 而且我们还可以控制这个执行者,比如强制终止它等 此外这个执行者也是一个很不错的模式,比如我们写好之后,交给定时任务去执行即可 比如cron,这个模式我们还可以扩展更高效率的并发,更多灵活的控制程序的生命周期 更高效的监控等。

Index

Constants

This section is empty.

Variables

View Source
var ErrInterrupt = errors.New("received interrupt signal")
View Source
var ErrorTimeout = errors.New("received timeout")

Functions

This section is empty.

Types

type Runner

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

声明一个runner

func New

func New(t time.Duration) *Runner

定义一个工厂函数创建runner

func NewWithoutTime added in v1.1.2

func NewWithoutTime() *Runner

func (*Runner) Add

func (r *Runner) Add(tasks ...func() error)

将需要执行的任务添加到runner中

func (*Runner) ErrorTaskIds added in v1.1.2

func (r *Runner) ErrorTaskIds() map[int]error

获取已经完成的任务ids

func (*Runner) GetLastTaskId

func (r *Runner) GetLastTaskId() int

获取最后一次完成任务id

func (*Runner) Run

func (r *Runner) Run() error

运行一个个任务,如果出错就返回错误信息 run方法也很简单,会使用for循环,不停的运行任务,在运行的每个任务之前,都会检测是否收到了中断信号 如果没有收到,则继续执行,一直到执行完毕,返回nil; 如果收到了中断信号,则直接返回中断错误类型,任务执行终止

func (*Runner) Start

func (r *Runner) Start() error

开始执行所有的任务

Jump to

Keyboard shortcuts

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