@hackage hasql-queue1.2.0.2
A PostgreSQL backed queue
Categories
License
BSD-3-Clause
Maintainer
jonathangfischoff@gmail.com
Links
Versions
Installation
Tested Compilers
Dependencies (14)
- aeson
- base >=4.7 && <5
- bytestring
- exceptions
- hasql
- here Show all…
Dependents (0)
hasql-queue
This module utilizes PostgreSQL to implement a durable queue for efficently processing payloads.
Typically a producer would enqueue a new payload as part of larger database transaction
createAccount userRecord = transaction Serializable Write $ do
createUser userRecord
enqueue "queue_channel" emailEncoder [makeVerificationEmail userRecord]
In another thread or process the consumer would drain the queue.
-- Wait for a single new record and try to send the email 5 times for giving
-- up and marking the payload as failed.
forever $ withDequeue "queue_channel" conn emailDecoder 5 1 $
mapM_ sendEmail