| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Arbiter.Core.CronSchedule
Contents
Description
Types for the cron_schedules table.
Code-defined defaults and user overrides sit in separate columns. Worker startup upserts the defaults. An override survives every deploy.
Synopsis
- data CronScheduleRow = CronScheduleRow {
- name :: Text
- queueName :: Text
- defaultExpression :: Text
- defaultOverlap :: Text
- defaultTimezone :: Maybe Text
- overrideExpression :: Maybe Text
- overrideOverlap :: Maybe Text
- overrideTimezone :: Maybe Text
- enabled :: Bool
- lastFiredAt :: Maybe UTCTime
- lastCheckedAt :: Maybe UTCTime
- runRequestedAt :: Maybe UTCTime
- lastManualRunAt :: Maybe UTCTime
- createdAt :: UTCTime
- updatedAt :: UTCTime
- data CronScheduleUpdate = CronScheduleUpdate {
- overrideExpression :: Maybe (Maybe Text)
- overrideOverlap :: Maybe (Maybe Text)
- overrideTimezone :: Maybe (Maybe Text)
- enabled :: Maybe Bool
- effectiveExpression :: CronScheduleRow -> Text
- effectiveOverlap :: CronScheduleRow -> Text
- effectiveTimezone :: CronScheduleRow -> Maybe Text
- cronSchedulesTable :: Text -> Text
- cronSchedulesTableName :: Text
- createCronSchedulesTableSQL :: Text -> Text
- addTimezoneColumnSQL :: Text -> Text
- addQueueNameColumnSQL :: Text -> Text
- addRunRequestedColumnSQL :: Text -> Text
- addLastManualRunColumnSQL :: Text -> Text
Types
Source #data CronScheduleRow
A row from the cron_schedules table.
Constructors
| CronScheduleRow | |
Fields
| |
Instances
Source #data CronScheduleUpdate
A patch over a cron schedule's overrides. Nothing leaves a field unchanged, Just
Nothing clears the override back to the default, Just (Just v) sets it.
Constructors
| CronScheduleUpdate | |
Fields
| |
Instances
| FromJSON CronScheduleUpdate Source # | |||||
Defined in Arbiter.Core.CronSchedule Methods #parseJSON :: Value -> Parser CronScheduleUpdate #parseJSONList :: Value -> Parser [CronScheduleUpdate] | |||||
| ToJSON CronScheduleUpdate Source # | |||||
Defined in Arbiter.Core.CronSchedule Methods #toJSON :: CronScheduleUpdate -> Value #toEncoding :: CronScheduleUpdate -> Encoding #toJSONList :: [CronScheduleUpdate] -> Value #toEncodingList :: [CronScheduleUpdate] -> Encoding #omitField :: CronScheduleUpdate -> Bool | |||||
| Eq CronScheduleUpdate Source # | |||||
Defined in Arbiter.Core.CronSchedule Methods #(==) :: CronScheduleUpdate -> CronScheduleUpdate -> Bool #(/=) :: CronScheduleUpdate -> CronScheduleUpdate -> Bool | |||||
| Generic CronScheduleUpdate Source # | |||||
Defined in Arbiter.Core.CronSchedule Associated Types
Methods #from :: CronScheduleUpdate -> Rep CronScheduleUpdate x #to :: Rep CronScheduleUpdate x -> CronScheduleUpdate | |||||
| Show CronScheduleUpdate Source # | |||||
Defined in Arbiter.Core.CronSchedule Methods #showsPrec :: Int -> CronScheduleUpdate -> ShowS #show :: CronScheduleUpdate -> String #showList :: [CronScheduleUpdate] -> ShowS | |||||
| type Rep CronScheduleUpdate Source # | |||||
Defined in Arbiter.Core.CronSchedule type Rep CronScheduleUpdate = D1 ('MetaData "CronScheduleUpdate" "Arbiter.Core.CronSchedule" "arbiter-core-0.1.0.0-inplace" 'False) (C1 ('MetaCons "CronScheduleUpdate" 'PrefixI 'True) ((S1 ('MetaSel ('Just "overrideExpression") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe (Maybe Text))) :*: S1 ('MetaSel ('Just "overrideOverlap") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe (Maybe Text)))) :*: (S1 ('MetaSel ('Just "overrideTimezone") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe (Maybe Text))) :*: S1 ('MetaSel ('Just "enabled") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Bool))))) | |||||
Effective values
Source #effectiveExpression :: CronScheduleRow -> Text
The override expression if set, else the default.
Source #effectiveOverlap :: CronScheduleRow -> Text
The override overlap policy if set, else the default.
Source #effectiveTimezone :: CronScheduleRow -> Maybe Text
The override timezone if set, else the default. Nothing means UTC.
DDL
Source #cronSchedulesTable :: Text -> Text
Qualified table name for the cron_schedules table.
Source #cronSchedulesTableName :: Text
Bare name of the cron table, for catalog lookups by relname.
Source #createCronSchedulesTableSQL :: Text -> Text
DDL for the cron_schedules table.
Source #addTimezoneColumnSQL :: Text -> Text
Idempotent migration adding the timezone columns to an existing table.
Source #addQueueNameColumnSQL :: Text -> Text
Migration adding the queue name column.
Source #addRunRequestedColumnSQL :: Text -> Text
Idempotent migration adding the manual run-request column to an existing table.
Source #addLastManualRunColumnSQL :: Text -> Text
Idempotent migration adding the manual run-completed column to an existing table.