Skip to content

package queue gives you a queue group accessibility. Helps you to limit goroutines, wait for the end of the all goroutines and much more.

License

Notifications You must be signed in to change notification settings

AnikHasibul/queue

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

queue

-- import "github.com/anikhasibul/queue"

package queue gives you a queue group accessibility. Helps you to limit goroutines, wait for the end of the all goroutines and much more...

maxRoutines := 50
q := queue.New(maxRoutines)
defer q.Close()
for i := 0; i != 1000; i++ {
	q.Add()
	go func(c int) {
		defer q.Done()
		fmt.Println(c)
	}(i)
}
//wait for the end of the all jobs
q.Wait()

Usage

type Q

type Q struct {
}

Q holds a queue group and it's essentials.

func New

func New(max int) *Q

New creates a new queue group. It takes max running jobs as a parameter.

func (*Q) Add

func (q *Q) Add()

Add adds a new job to the queue.

func (*Q) Done

func (q *Q) Done()

Done decrements the queue group counter.

func (*Q) Wait

func (q *Q) Wait()

Wait waits for the end of the all jobs.

func (*Q) Current

func (q *Q) Current() int

Current returns the number of current running jobs.

func (*Q) Close

func (q *Q) Close()

Close closes a queue group gracefully.

About

package queue gives you a queue group accessibility. Helps you to limit goroutines, wait for the end of the all goroutines and much more.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages