Build a pool of queue-processing worker threads.
immortal-queue
is a library for build an asynchronous worker pool that processes action from a generic queue. You can use any thread-safe datatype with a push and pop like a TQueue
or a persistent
database table.
The worker pool is configured by building an ImmortalQueue
type, which describes how to push and pop from the queue as well as how to process items and handle errors.
For a simple usage example using a TQueue, see the module documentation. For a more complex example that uses a persistent
database as a queue, see Southern Exposure's website code.
Immortal Queue
A Haskell library for building a pool of queue-processing worker threads, leveraging the immortal package.
Usage
To use this library, build an ImmortalQueue
value describing how to manipulate and process your queue. Then you start start the pool using the processImmortalQueue
function and close or kill it with closeImmortalQueue
or killImmortalQueue
.
For a simple example using a TQueue
, please refer to the haddock documentation for the module.
For a more complex example that uses a persistent database as a queue backend, see the Southern Exposure Seed Exchange's Workers module.
Developing
You can build the project with stack:
stack build
For development, you can enable fast builds with file-watching, documentation-building, & test-running:
stack test --haddock --fast --file-watch --pedantic
To build & open the documentation, run:
stack haddock --open immortal-queue
LICENSE
BSD-3
The original code for this package was lifted from Southern Exposure Seed Exchange's website.