Skip to content

Simple in-memory job queue for Golang using worker-based dispatching

License

Notifications You must be signed in to change notification settings

mborders/artifex

Folders and files

NameName
Last commit message
Last commit date
Oct 31, 2018
Aug 17, 2020
Oct 31, 2018
Aug 17, 2020
Jul 19, 2024
Jul 19, 2024
Jul 19, 2024
Aug 17, 2020
Nov 1, 2018
Nov 1, 2018

Repository files navigation

GoDoc Build Status Go Report Card codecov

artifex

Simple in-memory job queue for Golang using worker-based dispatching

Documentation here: https://godoc.org/github.com/mborders/artifex

Cron jobs use the robfig/cron library: https://godoc.org/github.com/robfig/cron

Example Usage

// 10 workers, 100 max in job queue
d := artifex.NewDispatcher(10, 100)
d.Start()

d.Dispatch(func() {
  // do something
})

err := d.DispatchIn(func() {
  // do something in 500ms
}, time.Millisecond*500)

// Returns a DispatchTicker
dt, err := d.DispatchEvery(func() {
  // do something every 250ms
}, time.Millisecond*250)

// Stop a given DispatchTicker
dt.Stop()

// Returns a DispatchCron
dc, err := d.DispatchCron(func() {
  // do something every 1s
}, "*/1 * * * * *")

// Stop a given DispatchCron
dc.Stop()

// Stop a dispatcher and all its workers/tickers
d.Stop()