Skip to content
/ go-queue Public

go-queue is common queue for concurrency(go-queue 是一个通用的并发通道,可以自定义同时并发数和自定义并发任务)

Notifications You must be signed in to change notification settings

JimYJ/go-queue

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Build Status Go Report Card

go-queue

go-queue is task queue for concurrency(go-queue 是一个通用的并发通道,可以自定义同时并发数和自定义并发任务)

How to get

go get github.com/JimYJ/go-queue

Usage

import:

import "github.com/JimYJ/go-queue"

init and use:

func main() {
	queue.Debug() // show log
    queue.InitQueue(2, true, true)                    // frist param means max concurrent.
                                                      // if second param is true,means main goroutine will wait that all queue done. 
                                                      // if third param is true, means every error or timeout will retry 3 times.
	queue.SetConcurrentInterval(1 * time.Millisecond) // set interval time for each concurrent, default 0
	for i := 0; i < 10; i++ {
		job := new(queue.Job)
		job.ID = int64(i)
		job.FuncQueue = youfunc
		job.Payload = []interface{}{100, 50}
		queue.Push(job)
	}
	queue.Done()
	log.Println(queue.FailList)
}

func youfunc(value ...interface{}) error { //you func must meet type Func func(value ...interface{})error
	//dosomething
	return errors.New("error info")
}

About

go-queue is common queue for concurrency(go-queue 是一个通用的并发通道,可以自定义同时并发数和自定义并发任务)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages