You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Nov 20, 2023. It is now read-only.
⚠️que-go is unmaintained⚠️. Please check out River for a fast, reliable Postgres job queue in Go.
Overview
Que-go is a fully interoperable Golang port of Chris Hanks' Ruby Que
queuing library for PostgreSQL. Que uses PostgreSQL's advisory locks
for speed and reliability.
Because que-go is an interoperable port of Que, you can enqueue jobs in Ruby
(i.e. from a Rails app) and write your workers in Go. Or if you have a limited
set of jobs that you want to write in Go, you can leave most of your workers in
Ruby and just add a few Go workers on a different queue name. Or you can just
write everything in Go :)
pgx PostgreSQL driver
This package uses the pgx Go PostgreSQL driver rather than the more
popular pq. Because Que uses session-level advisory locks, we have to hold
the same connection throughout the process of getting a job, working it,
deleting it, and removing the lock.
Pq and the built-in database/sql interfaces do not offer this functionality, so
we'd have to implement our own connection pool. Fortunately, pgx already has a
perfectly usable one built for us. Even better, it offers better performance
than pq due largely to its use of binary encoding.