It finally happened! I am about to introduce my first proper open source project, it is called squeuelite and it is a Golang package that tries to fix the queue issue using SQLite only.
The package can be found out github.com/risico/goqueuelite, check it out. The package is not production ready yet, although I’ve been using it already in maile.io (from where I’ve extracted it) and is able to handle quite a bit of load (I’ll post benchmarks soon).
Getting started
Import the library into your project as usual:
package main
import (
"github.com/risico/goequeuelite"
)
func main() {
s, err : squeuelite.New(squeuelite.Params{
DatabasePath: "queue.db",
})
err := s.Put("default", "somedata", 0) // put "somedata" into the "default" namespace, execute as soon as possible
// handle err
v, err := s.Pop("default")
// handle err
// do something with v
s.Done(v.MessageID)
// or
s.Fail(v.MessageID)
// or
s.Retry(v.MessageID)
}
The library is safe to run concurrently, so here the main usecase would be to run workers in Go routines that pick jobs to work on. Jobs can be marked as done, failed or be sent back for retry.
The API will def change until v1 is stable so please be prepared for that.
Have fun!
Related Posts
The Power Of Choosing Optimism
"The happiness of your life depends upon the quality of your thoughts." - Marcus Aurelius My first memories of childhood are grey, not in the cool, noir style of 1920s movies, but in the bleak, post-communist greyness of 1990s Romania. I was surrounded by people who had hoped for freedom for so
Lessons in cybersecurity, Part I
Here's a little story from the trenches, from far far away when I was a kiddo learning my way through webservers, PHP and vulnerable (pirated) bulletin boards software. 👋🏻 Intro A long time ago around 200* something, I was really interested in game hacking related topics and somehow I got in...
ZSH Alias Last Command and Alias + Persist commands
Introduction If you find yourself constantly running the same long commands on your terminal, setting up quick aliases can be a game-changer. This blog post will walk you through creating two handy ZSH functions that allow you to define and save aliases on-the-fly. With these, you can alias any
Comments
Comments from this blog and Bluesky
No comments yet. Be the first to comment!