keiro-dsl-0.10.0.0: test/conformance-dispatch-full/Generated/HospitalCapacity/Reservation_work/QueuePolicy.hs
-- @generated by keiro-dsl 0.9.0.0 (language keiro-dsl 4) from workqueue reservation_work; do not edit.
module Generated.HospitalCapacity.Reservation_work.QueuePolicy
( ReservationWorkOutcome (..)
, retryPolicy, jobOutcomeFor
, jobOrdering, jobTuningFor, queueProvision
) where
import Keiro.PGMQ.Job (JobOrdering (..), JobOutcome (..), JobTuning, PartitionSpec (..), QueueProvision, RetryDelay (..), RetryPolicy (..), partitionedProvision, standardProvision, unloggedProvision, withFifoIndexProvision, withOrdering)
jobOrdering :: JobOrdering
jobOrdering = FifoThroughput
-- Deployment owns visibility timeout, batch size, and polling; the spec owns ordering.
jobTuningFor :: JobTuning -> JobTuning
jobTuningFor = withOrdering jobOrdering
-- Pass this to ensureJobQueueWith at worker startup. FIFO adds the required GIN index; the DLQ remains standard.
queueProvision :: QueueProvision
queueProvision = withFifoIndexProvision (standardProvision)
retryPolicy :: RetryPolicy
retryPolicy =
RetryPolicy
{ maxRetries = 3
, defaultRetryDelay = RetryDelay 5
, useDeadLetter = True
}
-- The consumer JobOutcome disposition over the spec's named domain outcomes,
-- lowered to the live Keiro.PGMQ.Job.JobOutcome.
data ReservationWorkOutcome
= StoreFailure
| CommandRejected
| DecodeFailure
| OnCodecReject
deriving stock (Eq, Show)
jobOutcomeFor :: ReservationWorkOutcome -> JobOutcome
jobOutcomeFor o = case o of
StoreFailure -> Retry (RetryDelay 5)
CommandRejected -> Dead "dead-lettered"
DecodeFailure -> Dead "dead-lettered"
OnCodecReject -> Dead "dead-lettered"