keiro-dsl-0.12.0.0: test/conformance-projection-catalog/Generated/CatalogDemo/QualificationJobs/QueuePolicy.hs
-- @generated by keiro-dsl 0.12.0.0 (language keiro-dsl 5) from workqueue qualification_jobs; do not edit.
module Generated.CatalogDemo.QualificationJobs.QueuePolicy
( QualificationJobsOutcome (..)
, retryPolicy, jobOutcomeFor
, jobOrdering, jobTuningFor, queueProvision
) where
import Keiro.PGMQ.Job (JobOrdering (..), JobOutcome (..), JobTuning, QueueProvision, RetryDelay (..), RetryPolicy (..), standardProvision, withOrdering)
jobOrdering :: JobOrdering
jobOrdering = Unordered
-- 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 = standardProvision
retryPolicy :: RetryPolicy
retryPolicy =
RetryPolicy
{ maxRetries = 3
, defaultRetryDelay = RetryDelay 1
, useDeadLetter = True
}
-- The consumer JobOutcome disposition over the spec's named domain outcomes,
-- lowered to the live Keiro.PGMQ.Job.JobOutcome.
data QualificationJobsOutcome
= StoreFailure
| CommandRejected
| DecodeFailure
| OnCodecReject
deriving stock (Eq, Show)
jobOutcomeFor :: QualificationJobsOutcome -> JobOutcome
jobOutcomeFor o = case o of
StoreFailure -> Retry (RetryDelay 1)
CommandRejected -> Dead "dead-lettered"
DecodeFailure -> Dead "dead-lettered"
OnCodecReject -> Dead "dead-lettered"