| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Arbiter.Core
Description
Re-exports commonly used Arbiter functionality.
Synopsis
- module Arbiter.Core.Job.DLQ
- module Arbiter.Core.Job.Types
- module Arbiter.Core.MonadArbiter
- module Arbiter.Core.HasArbiterSchema
- module Arbiter.Core.QueueRegistry
- module Arbiter.Core.HighLevel
- data JobTree payload
- leaf :: JobWrite payload -> JobTree payload
- rollup :: JobWrite payload -> NonEmpty (JobTree payload) -> JobTree payload
- (<~~) :: JobWrite payload -> NonEmpty (JobWrite payload) -> JobTree payload
- module Arbiter.Core.Codec
- module Arbiter.Core.Job.Schema
- module Arbiter.Core.Exceptions
- module Arbiter.Core.PoolConfig
Core types
module Arbiter.Core.Job.DLQ
module Arbiter.Core.Job.Types
module Arbiter.Core.MonadArbiter
module Arbiter.Core.QueueRegistry
High-level operations
module Arbiter.Core.HighLevel
Job tree DSL
A tree of jobs. Leaves are single jobs; finalizers are parents with children that run immediately while the parent waits for completion.
leaf :: JobWrite payload -> JobTree payload Source #
A single job (leaf node) — a terminal node with no children.
rollup :: JobWrite payload -> NonEmpty (JobTree payload) -> JobTree payload Source #
Finalizer that runs after all children finish.
For nested rollups, intermediate finalizers must explicitly return the merged value to propagate results upward. This is not automatic. When no children remain in the main queue (all completed or DLQ'd), the finalizer wakes.
rollup (defaultJob root) ( leaf (defaultJob leaf1) :| [leaf (defaultJob leaf2)] )
(<~~) :: JobWrite payload -> NonEmpty (JobWrite payload) -> JobTree payload infixr 6 Source #
Infix rollup for leaf-only children.
defaultJob reducer <~~ (defaultJob mapper1 :| [defaultJob mapper2])
Typed codecs and parameters
module Arbiter.Core.Codec
Schema
module Arbiter.Core.Job.Schema
Exceptions
module Arbiter.Core.Exceptions
Connection pool settings
module Arbiter.Core.PoolConfig