hasql-queue: A PostgreSQL backed queue
This module utilize PostgreSQL to implement a durable queue for efficently processing arbitrary payloads which can be represented as JSON.
Typically a producer would enqueue a new payload as part of larger database transaction
createAccount userRecord = do
'runDBTSerializable' $ do
createUserDB userRecord
'enqueueDB' "queue_schema" $ makeVerificationEmail userRecordIn another thread or process, the consumer would drain the queue.
forever $ do
-- Attempt get a payload or block until one is available
payload <- lock "queue" conn
-- Perform application specifc parsing of the payload value
case fromJSON $ pValue payload of
Success x -> sendEmail x -- Perform application specific processing
Error err -> logErr err
-- Remove the payload from future processing
dequeue "queue" conn $ pId payload
To support multiple queues in the same database, the API expects a table name string
to determine which queue tables to use.
[Skip to Readme]
Modules
- Hasql
- Queue
- Hasql.Queue.IO
- Hasql.Queue.Internal
- Hasql.Queue.Migrate
- Hasql.Queue.Session
- Queue
Downloads
- hasql-queue-1.0.1.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
| Versions [RSS] | 1.0.1, 1.0.1.1, 1.2.0.0, 1.2.0.1, 1.2.0.2 |
|---|---|
| Change log | CHANGELOG.md |
| Dependencies | aeson, async, base (>=4.7 && <5), base64-bytestring, bytestring, cryptohash-sha1, exceptions, hasql, hasql-notifications, hasql-queue, here, monad-control, random, resource-pool, stm, text, time, tmp-postgres, transformers [details] |
| Tested with | ghc ==8.8.1 |
| License | BSD-3-Clause |
| Copyright | 2020 Jonathan Fischoff |
| Author | Jonathan Fischoff |
| Maintainer | jonathangfischoff@gmail.com |
| Category | Web |
| Home page | https://github.com/jfischoff/postgresql-queue#readme |
| Bug tracker | https://github.com/jfischoff/postgresql-queue/issues |
| Source repo | head: git clone https://github.com/jfischoff/postgresql-queue |
| Uploaded | by JonathanFischoff at 2020-06-14T06:10:21Z |
| Distributions | |
| Executables | benchmark |
| Downloads | 1288 total (12 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating | |
| Status | Docs not available [build log] All reported builds failed as of 2020-06-14 [all 3 reports] |