Skip to content

Latest commit

 

History

History
69 lines (53 loc) · 1.35 KB

README.md

File metadata and controls

69 lines (53 loc) · 1.35 KB

Library

Installation

If you want to install the latest version of the library, use this line:

go get -u github.com/yule-l/tm@latest

Then import tm in your code

import "github.com/yule-l/tm"

Quick Start

Doers

Doer is a simple way to run your tasks in ordered, parallel or something else way, you can control them by context.Context.

Parallel Doer

ctx := context.Background()
taskManager, _ := tm.NewTasksManager(tm.NewDefaultConfig("tasks.txt"))
doer := tm.NewDefaultParallelDoer(taskManager)
doer.Do(ctx, func(ctx context.Context, task string) error {
	// do tasks in goroutines
	return nil
})

Ordered Doer

ctx := context.Background()
taskManager, _ := tm.NewTasksManager(tm.NewDefaultConfig("tasks.txt"))
doer := tm.NewDefaultOrderedDoer(taskManager)

doer.Do(ctx, func(ctx context.Context, task string) error {
	// do task one by one
	return nil
})

Custom

or you can use task manager more specifically

taskManager, _ := tm.NewTasksManager(tm.NewDefaultConfig("tasks.txt"))

for {
    task, nodata := taskManager.Next()
    if nodata {
        return
    }
    err := doTask(task)
	if err != nil {
		taskManager.Error(task, err)
		continue
    }
	
    taskManager.Finish(task)
}

Also see the documentation

Examples

See examples