Simple, efficient worker queue for Ruby & PostgreSQL.
This is a release of 4.0.0. It has one minor update, plus a move to github actions for CI.
We've had an alpha for a while. This fixes a couple of minor issues with it, including
Tons of changes here, but the main one is moving to use SKIP LOCKED, which improves performance dramatically.
Improved signal handling. Worker now unlocks jobs when the INT signal is processed. Also fixed issues with the worker reading the values of $QUEUES
for multi-queue processing.
The new feature in this release is the ability for a worker to process many queues. The worker will accept a list of queues to work on and will process the queues in a left to right order. For example:
$ QUEUES="first,second" bundle exec rake qc:work
In this scenario, on each iteration of the worker's loop, it will look for jobs in the first
queue prior to looking at the second
queue. This means that the first
queue must be empty before the worker will look at the second
queue.
See 2fefa5f084c4d93a4f271acb947903514cbdc534 for more details. And more generally read over #190 for an overview of the refactorings.