| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Arbiter.Core.Sql.Jobs
Description
Jobs SQL templates.
Synopsis
- data JobFilter
- = FilterGroupKey Text
- | FilterParentId Int64
- | FilterRootsOnly
- | FilterStatus JobStatus
- | FilterId Int64
- | FilterJobId Int64
- | FilterClaimedBy UUID
- | FilterKind Text
- | FilterPayloadText Text
- | FilterRateLimitPrefix Text
- | FilterConcurrencyPrefix Text
- | FilterInsertedAfter UTCTime
- | FilterInsertedBefore UTCTime
- | FilterCompletedAfter UTCTime
- | FilterCompletedBefore UTCTime
- data JobSortColumn
- jobSortColumnName :: JobSortColumn -> Text
- data DLQSortColumn
- dlqSortColumnName :: DLQSortColumn -> Text
- data ArchiveSortColumn
- archiveSortColumnName :: ArchiveSortColumn -> Text
- data SortDir
- sortDirSql :: SortDir -> Text
- throttledPredicateSQL :: Text
- jobStatusCaseSQL :: Text
- jobsWithStatusSubquery :: Text -> Text -> Text
- listJobsFilteredSQL :: Text -> Text -> Query () -> Text -> Int64 -> Int64 -> Query (JobRead Value)
- listJobsWithStatusSQL :: Text -> Text -> Query () -> Text -> Int64 -> Int64 -> Query ()
- countJobsFilteredSQL :: Text -> Text -> Query () -> Query Int64
- getJobByIdWithStatusSQL :: Text -> Text -> Int64 -> Query ()
- listDLQFilteredSQL :: Text -> Text -> Query () -> Text -> Int64 -> Int64 -> Query (Int64, UTCTime, JobRead Value)
- data NullsBehavior
- nullsClause :: NullsBehavior -> SortDir -> Text
- jobColumnNulls :: JobSortColumn -> NullsBehavior
- dlqColumnNulls :: DLQSortColumn -> NullsBehavior
- buildJobsOrderBy :: Maybe JobSortColumn -> Maybe SortDir -> Text
- buildDLQOrderBy :: Maybe DLQSortColumn -> Maybe SortDir -> Text
- buildArchiveOrderBy :: Maybe ArchiveSortColumn -> Maybe SortDir -> Text
- countDLQFilteredSQL :: Text -> Text -> Query () -> Query Int64
- allDLQColumns :: Text
- jobColsExceptId :: Text
- dlqCarriedCols :: Text
- requeuedCols :: Text
- enqueuedAgainCols :: Text
- jobColumns :: Text
- dedupUpdateSet :: Text -> Text
- insertJobSQL :: SchemaName -> TableName -> Query () -> Query (JobRead Value)
- insertJobReplaceSQL :: SchemaName -> TableName -> Query () -> Query (JobRead Value)
- insertJobsBatchSQL :: SchemaName -> TableName -> Query () -> Query (JobRead Value)
- insertJobsBatchSQL_ :: SchemaName -> TableName -> Query () -> Query ()
- insertJobsBatchBase :: SchemaName -> TableName -> Query () -> Text -> Query ()
- getJobByIdSQL :: Text -> Text -> Int64 -> Query (JobRead Value)
- getJobByDedupKeySQL :: Text -> Text -> Text -> Query (JobRead Value)
- cancelJobSQL :: Text -> Text -> Int64 -> Query Int64
- unionAllOverQueueTables :: SchemaName -> [TableName] -> (TableName -> Text -> Text) -> Text
Documentation
A narrowing predicate on a job listing. FilterJobId and the completed_at
range name DLQ and archive columns.
Constructors
Source #data JobSortColumn
Sortable columns on the main jobs table.
Constructors
| JsId | |
| JsPriority | |
| JsAttempts | |
| JsInsertedAt | |
| JsNotVisibleUntil | |
| JsGroupKey | |
| JsParentId | |
| JsLastAttemptedAt |
Instances
| Eq JobSortColumn Source # | |
Defined in Arbiter.Core.Sql.Jobs Methods #(==) :: JobSortColumn -> JobSortColumn -> Bool #(/=) :: JobSortColumn -> JobSortColumn -> Bool | |
| Bounded JobSortColumn Source # | |
Defined in Arbiter.Core.Sql.Jobs | |
| Enum JobSortColumn Source # | |
Defined in Arbiter.Core.Sql.Jobs Methods #succ :: JobSortColumn -> JobSortColumn #pred :: JobSortColumn -> JobSortColumn #toEnum :: Int -> JobSortColumn #fromEnum :: JobSortColumn -> Int #enumFrom :: JobSortColumn -> [JobSortColumn] #enumFromThen :: JobSortColumn -> JobSortColumn -> [JobSortColumn] #enumFromTo :: JobSortColumn -> JobSortColumn -> [JobSortColumn] #enumFromThenTo :: JobSortColumn -> JobSortColumn -> JobSortColumn -> [JobSortColumn] | |
| Show JobSortColumn Source # | |
Defined in Arbiter.Core.Sql.Jobs Methods #showsPrec :: Int -> JobSortColumn -> ShowS #show :: JobSortColumn -> String #showList :: [JobSortColumn] -> ShowS | |
Source #jobSortColumnName :: JobSortColumn -> Text
Underlying SQL column name for a JobSortColumn.
Source #data DLQSortColumn
Sortable columns on the DLQ table. DlqId is the DLQ primary key and
DlqJobId the original job id.
Constructors
| DlqId | |
| DlqFailedAt | |
| DlqJobId | |
| DlqPriority | |
| DlqAttempts | |
| DlqInsertedAt | |
| DlqGroupKey | |
| DlqParentId | |
| DlqLastAttemptedAt |
Instances
| Eq DLQSortColumn Source # | |
Defined in Arbiter.Core.Sql.Jobs Methods #(==) :: DLQSortColumn -> DLQSortColumn -> Bool #(/=) :: DLQSortColumn -> DLQSortColumn -> Bool | |
| Bounded DLQSortColumn Source # | |
Defined in Arbiter.Core.Sql.Jobs | |
| Enum DLQSortColumn Source # | |
Defined in Arbiter.Core.Sql.Jobs Methods #succ :: DLQSortColumn -> DLQSortColumn #pred :: DLQSortColumn -> DLQSortColumn #toEnum :: Int -> DLQSortColumn #fromEnum :: DLQSortColumn -> Int #enumFrom :: DLQSortColumn -> [DLQSortColumn] #enumFromThen :: DLQSortColumn -> DLQSortColumn -> [DLQSortColumn] #enumFromTo :: DLQSortColumn -> DLQSortColumn -> [DLQSortColumn] #enumFromThenTo :: DLQSortColumn -> DLQSortColumn -> DLQSortColumn -> [DLQSortColumn] | |
| Show DLQSortColumn Source # | |
Defined in Arbiter.Core.Sql.Jobs Methods #showsPrec :: Int -> DLQSortColumn -> ShowS #show :: DLQSortColumn -> String #showList :: [DLQSortColumn] -> ShowS | |
Source #dlqSortColumnName :: DLQSortColumn -> Text
The DLQ column a sort key names.
Source #data ArchiveSortColumn
Sortable columns on the archive table. ArchiveId is the archive primary
key and ArchiveJobId the original job id.
Constructors
| ArchiveId | |
| ArchiveCompletedAt | |
| ArchiveInsertedAt | |
| ArchiveJobId | |
| ArchiveAttempts | |
| ArchiveGroupKey | |
| ArchiveParentId |
Instances
| Eq ArchiveSortColumn Source # | |
Defined in Arbiter.Core.Sql.Jobs Methods #(==) :: ArchiveSortColumn -> ArchiveSortColumn -> Bool #(/=) :: ArchiveSortColumn -> ArchiveSortColumn -> Bool | |
| Bounded ArchiveSortColumn Source # | |
Defined in Arbiter.Core.Sql.Jobs | |
| Enum ArchiveSortColumn Source # | |
Defined in Arbiter.Core.Sql.Jobs Methods #succ :: ArchiveSortColumn -> ArchiveSortColumn #pred :: ArchiveSortColumn -> ArchiveSortColumn #toEnum :: Int -> ArchiveSortColumn #fromEnum :: ArchiveSortColumn -> Int #enumFrom :: ArchiveSortColumn -> [ArchiveSortColumn] #enumFromThen :: ArchiveSortColumn -> ArchiveSortColumn -> [ArchiveSortColumn] #enumFromTo :: ArchiveSortColumn -> ArchiveSortColumn -> [ArchiveSortColumn] #enumFromThenTo :: ArchiveSortColumn -> ArchiveSortColumn -> ArchiveSortColumn -> [ArchiveSortColumn] | |
| Show ArchiveSortColumn Source # | |
Defined in Arbiter.Core.Sql.Jobs Methods #showsPrec :: Int -> ArchiveSortColumn -> ShowS #show :: ArchiveSortColumn -> String #showList :: [ArchiveSortColumn] -> ShowS | |
Source #archiveSortColumnName :: ArchiveSortColumn -> Text
The archive column a sort key names.
Sort direction.
Instances
| Eq SortDir Source # | |
| Bounded SortDir Source # | |
| Enum SortDir Source # | |
| Show SortDir Source # | |
Source #sortDirSql :: SortDir -> Text
A sort direction as SQL.
Source #throttledPredicateSQL :: Text
A throttle-deferred job with a live marker, still parked. Shared by status, count, and wake. Claiming clears the marker.
Source #jobStatusCaseSQL :: Text
The derived job status. Its string values match jobStatusToText.
Source #jobsWithStatusSubquery :: Text -> Text -> Text
All job columns plus the derived status column, aliased job, for filtering.
Source #listJobsFilteredSQL :: Text -> Text -> Query () -> Text -> Int64 -> Int64 -> Query (JobRead Value)
List filtered jobs without the derived status.
Source #listJobsWithStatusSQL :: Text -> Text -> Query () -> Text -> Int64 -> Int64 -> Query ()
List filtered jobs with status as a trailing column. The caller attaches the row decoder.
Source #countJobsFilteredSQL :: Text -> Text -> Query () -> Query Int64
Count filtered jobs through the status subquery.
Source #getJobByIdWithStatusSQL :: Text -> Text -> Int64 -> Query ()
Fetch a single job by id with its derived status trailing column. The caller attaches the row decoder.
Source #listDLQFilteredSQL :: Text -> Text -> Query () -> Text -> Int64 -> Int64 -> Query (Int64, UTCTime, JobRead Value)
List DLQ jobs under a dynamic WHERE and an orderBy from buildDLQOrderBy.
Source #data NullsBehavior
How NULLs in a sort column should order relative to non-NULL values.
Constructors
| NullsNotApplicable | Column is NOT NULL. Emit no NULLS clause. |
| NullsAsAbsent | NULL means absent. Always sorts last. |
| NullsAsMinimum | NULL is the column's minimum (e.g. |
Source #nullsClause :: NullsBehavior -> SortDir -> Text
The NULLS placement for a column's null semantics and direction.
Source #jobColumnNulls :: JobSortColumn -> NullsBehavior
How nulls sort for a job column.
Source #dlqColumnNulls :: DLQSortColumn -> NullsBehavior
How nulls sort for a DLQ column.
Source #buildJobsOrderBy :: Maybe JobSortColumn -> Maybe SortDir -> Text
ORDER BY for the jobs table. Defaults to id DESC.
Source #buildDLQOrderBy :: Maybe DLQSortColumn -> Maybe SortDir -> Text
ORDER BY for the DLQ table. Defaults to failed_at DESC.
Source #buildArchiveOrderBy :: Maybe ArchiveSortColumn -> Maybe SortDir -> Text
ORDER BY for the archive table. Defaults to completed_at DESC.
Source #countDLQFilteredSQL :: Text -> Text -> Query () -> Query Int64
Count DLQ jobs under a dynamic WHERE.
The DLQ read columns, in codec order. The DLQ uses job_id for the main-table id.
Source #jobColsExceptId :: Text
The job read columns except id. The archive INSERT copies them with the main
table's id as job_id.
Source #dlqCarriedCols :: Text
Job columns carried through a DLQ round-trip. The read columns except id and
last_error, plus write-only rate_limit_cost.
Job columns a DLQ retry carries back to the main table. The retry re-arms the rest.
Source #enqueuedAgainCols :: Text
requeuedCols for an archive re-enqueue, without the parent link.
The job read columns, in codec order, for SELECT and RETURNING.
Source #dedupUpdateSet :: Text -> Text
DO UPDATE SET body for a replace-dedup upsert. Copies each writable column
from the excluded row, then re-arms the replaced job for a fresh run.
Source #insertJobSQL :: SchemaName -> TableName -> Query () -> Query (JobRead Value)
Insert a job. The write fragment carries the column list and parameters.
Source #insertJobReplaceSQL :: SchemaName -> TableName -> Query () -> Query (JobRead Value)
Insert under the replace dedup strategy. Replaces an existing job that is idle
and childless in the main queue and the DLQ. ON CONFLICT DO UPDATE fires the
groups UPDATE trigger, which maintains a cross-group move.
Source #insertJobsBatchSQL :: SchemaName -> TableName -> Query () -> Query (JobRead Value)
Batch insert over unnested parallel arrays. An ignore-dedup job is skipped on
conflict. A replace-dedup job updates an idle existing row.
Source #insertJobsBatchSQL_ :: SchemaName -> TableName -> Query () -> Query ()
insertJobsBatchBase with no RETURNING.
Source #insertJobsBatchBase :: SchemaName -> TableName -> Query () -> Text -> Query ()
Batch insert with dedup and replaceable-job handling, plus a caller's RETURNING.
Source #getJobByDedupKeySQL :: Text -> Text -> Text -> Query (JobRead Value)
Fetch a job by its dedup key. The partial unique index guarantees at most one row.
Source #cancelJobSQL :: Text -> Text -> Int64 -> Query Int64
Delete a job by id. Refuses one with children, which cancelJobCascadeSQL takes.
A deleted child with no siblings left resumes its parent for a completion round.
Source #unionAllOverQueueTables :: SchemaName -> [TableName] -> (TableName -> Text -> Text) -> Text
UNION ALL of body over each job table, passing its raw name and schema-qualified reference.