| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Arbiter.Worker.MultiQueue
Description
Naming, sizing, and coordinated lifecycle for multiple worker pools.
Synopsis
- data NamedWorkerPool (m :: Type -> Type) = (EncodeJobResult (ResultOf m payload), QueueOperation m payload, RegistryAdmissionPolicies (RegistryOf m), RegistryTables (RegistryOf m)) => NamedWorkerPool {
- workerPoolName :: Text
- workerPoolConfig :: WorkerConfig m payload
- namedWorkerPool :: forall payload (m :: Type -> Type). (EncodeJobResult (ResultOf m payload), QueueOperation m payload, RegistryAdmissionPolicies (RegistryOf m), RegistryTables (RegistryOf m)) => WorkerConfig m payload -> NamedWorkerPool m
- newtype WorkerPoolSelectionException = WorkerPoolSelectionException Text
- shutdownPools :: forall m (m' :: Type -> Type). MonadIO m => [NamedWorkerPool m'] -> m ()
- runWorkerPools :: (MonadUnliftIO m, RegistryTables (RegistryOf m)) => [NamedWorkerPool m] -> m ()
- runSelectedWorkerPools :: MonadUnliftIO m => [Text] -> [NamedWorkerPool m] -> m ()
- poolConfigForWorkers :: forall (m :: Type -> Type). RegistryTables (RegistryOf m) => [NamedWorkerPool m] -> IO PoolConfig
Documentation
Source #data NamedWorkerPool (m :: Type -> Type)
A worker pool paired with its registry-derived queue name.
Constructors
| (EncodeJobResult (ResultOf m payload), QueueOperation m payload, RegistryAdmissionPolicies (RegistryOf m), RegistryTables (RegistryOf m)) => NamedWorkerPool | |
Fields
| |
Source #namedWorkerPool :: forall payload (m :: Type -> Type). (EncodeJobResult (ResultOf m payload), QueueOperation m payload, RegistryAdmissionPolicies (RegistryOf m), RegistryTables (RegistryOf m)) => WorkerConfig m payload -> NamedWorkerPool m
Name a pool from its payload's registry entry.
Source #newtype WorkerPoolSelectionException
A requested queue has no configured pool, or selection is empty.
Constructors
| WorkerPoolSelectionException Text |
Instances
| Eq WorkerPoolSelectionException Source # | |
Defined in Arbiter.Worker.MultiQueue | |
| Exception WorkerPoolSelectionException Source # | |
| Show WorkerPoolSelectionException Source # | |
Defined in Arbiter.Worker.MultiQueue Methods #showsPrec :: Int -> WorkerPoolSelectionException -> ShowS | |
Source #shutdownPools :: forall m (m' :: Type -> Type). MonadIO m => [NamedWorkerPool m'] -> m ()
Signal graceful shutdown to every pool atomically.
Source #runWorkerPools :: (MonadUnliftIO m, RegistryTables (RegistryOf m)) => [NamedWorkerPool m] -> m ()
Run the pools selected by ARBITER_ENABLED_QUEUES, or every configured
pool when it is unset.
Source #runSelectedWorkerPools :: MonadUnliftIO m => [Text] -> [NamedWorkerPool m] -> m ()
Run only named pools. A pool that exits winds down its peers. The first failure among them is rethrown after every peer has been joined.
Source #poolConfigForWorkers :: forall (m :: Type -> Type). RegistryTables (RegistryOf m) => [NamedWorkerPool m] -> IO PoolConfig
A single-stripe pool sized at twice the enabled worker count plus one for the listener, with a minimum size of three.