Safe Haskell | None |
---|---|
Language | Haskell2010 |
Database.PostgreSQL.Consumers.Components
Synopsis
- runConsumer :: (MonadBaseControl IO m, MonadLog m, MonadMask m, MonadTime m, Eq idx, Show idx, FromSQL idx, ToSQL idx) => ConsumerConfig m idx job -> ConnectionSourceM m -> m (m ())
- runConsumerWithIdleSignal :: (MonadBaseControl IO m, MonadLog m, MonadMask m, MonadTime m, Eq idx, Show idx, FromSQL idx, ToSQL idx) => ConsumerConfig m idx job -> ConnectionSourceM m -> TMVar Bool -> m (m ())
- spawnListener :: (MonadBaseControl IO m, MonadMask m) => ConsumerConfig m idx job -> ConnectionSourceM m -> MVar () -> m ThreadId
- spawnMonitor :: (MonadBaseControl IO m, MonadLog m, MonadMask m, MonadTime m, Show idx, FromSQL idx, ToSQL idx) => ConsumerConfig m idx job -> ConnectionSourceM m -> ConsumerID -> m ThreadId
- spawnDispatcher :: (MonadBaseControl IO m, MonadLog m, MonadMask m, MonadTime m, Show idx, ToSQL idx) => ConsumerConfig m idx job -> ConnectionSourceM m -> ConsumerID -> MVar () -> TVar (Map ThreadId idx) -> TVar Int -> Maybe (TMVar Bool) -> m ThreadId
Documentation
Arguments
:: (MonadBaseControl IO m, MonadLog m, MonadMask m, MonadTime m, Eq idx, Show idx, FromSQL idx, ToSQL idx) | |
=> ConsumerConfig m idx job | The consumer. |
-> ConnectionSourceM m | |
-> m (m ()) |
Run the consumer. The purpose of the returned monadic action is to wait for
currently processed jobs and clean up. This function is best used in
conjunction with finalize
to seamlessly handle the finalization.
If you want to add metrics, see the
consumers-metrics-prometheus
package to seamlessly instrument your consumer.
runConsumerWithIdleSignal Source #
Arguments
:: (MonadBaseControl IO m, MonadLog m, MonadMask m, MonadTime m, Eq idx, Show idx, FromSQL idx, ToSQL idx) | |
=> ConsumerConfig m idx job | The consumer. |
-> ConnectionSourceM m | |
-> TMVar Bool | |
-> m (m ()) |
spawnListener :: (MonadBaseControl IO m, MonadMask m) => ConsumerConfig m idx job -> ConnectionSourceM m -> MVar () -> m ThreadId Source #
Spawn a thread that generates signals for the dispatcher to probe the database for incoming jobs.
spawnMonitor :: (MonadBaseControl IO m, MonadLog m, MonadMask m, MonadTime m, Show idx, FromSQL idx, ToSQL idx) => ConsumerConfig m idx job -> ConnectionSourceM m -> ConsumerID -> m ThreadId Source #
Spawn a thread that monitors working consumers for activity and periodically updates its own.
spawnDispatcher :: (MonadBaseControl IO m, MonadLog m, MonadMask m, MonadTime m, Show idx, ToSQL idx) => ConsumerConfig m idx job -> ConnectionSourceM m -> ConsumerID -> MVar () -> TVar (Map ThreadId idx) -> TVar Int -> Maybe (TMVar Bool) -> m ThreadId Source #
Spawn a thread that reserves and processes jobs.