keiro-dsl-0.2.0.0: test/conformance-queue-runtime/Generated/HospitalCapacity/Reservation_work/QueuePolicy.hs
{-# LANGUAGE OverloadedStrings #-}
-- @generated by keiro-dsl; do not edit. Regenerated from the .keiro spec.
module Generated.HospitalCapacity.Reservation_work.QueuePolicy (
retryPolicy,
jobOutcomeFor,
jobOrdering,
jobTuningFor,
queueProvision,
) where
import Data.Text (Text)
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.
jobOutcomeFor :: Text -> JobOutcome
jobOutcomeFor o = case o of
"storeFailure" -> Retry (RetryDelay 5)
"commandRejected" -> Dead "dead-lettered"
"decodeFailure" -> Dead "dead-lettered"
"onCodecReject" -> Dead "dead-lettered"
_ -> Retry (RetryDelay 5)