que-go
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.
Please see the godocs for more info and examples.