consumers-2.3.3.1: Concurrent PostgreSQL data consumers
Safe HaskellNone
LanguageHaskell2010

Database.PostgreSQL.Consumers.Components

Synopsis

Documentation

runConsumer 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 
-> 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.