Cron

Configuration

Config reference, YAML example, and options for Cron

YAML Configuration Example

config.yaml
extensions:
  cron:
    mode: "simple"                   # "simple" or "distributed"
    storage: "memory"                # "memory" or "database"
    maxConcurrentJobs: 10
    defaultTimeout: "5m"
    defaultTimezone: "UTC"

    # Retry
    maxRetries: 3
    retryBackoff: "1s"
    retryMultiplier: 2.0
    maxRetryBackoff: "30s"

    # History
    historyRetentionDays: 30
    maxHistoryRecords: 10000

    # Distributed mode
    leaderElection: false
    consensusExtension: "consensus"
    heartbeatInterval: "5s"
    lockTTL: "30s"

    # Admin
    enableAPI: true
    apiPrefix: "/api/cron"
    enableWebUI: true

    # Observability
    enableMetrics: true
    shutdownTimeout: "30s"

Programmatic Configuration

ext := cron.NewExtension(
    cron.WithMode("distributed"),
    cron.WithStorage("database"),
    cron.WithMaxConcurrentJobs(20),
    cron.WithLeaderElection(true),
    cron.WithTimeout(10 * time.Minute),
)

Config Struct Reference

FieldTypeDefaultDescription
Modestring"simple"Scheduling mode: "simple" or "distributed"
Storagestring"memory"Storage backend: "memory" or "database"
MaxConcurrentJobsint10Max concurrent job executions
DefaultTimeouttime.Duration5mDefault per-job timeout
DefaultTimezonestring"UTC"Timezone for cron expressions
MaxRetriesint3Default max retry attempts
RetryBackofftime.Duration1sInitial retry backoff
RetryMultiplierfloat642.0Backoff multiplier
MaxRetryBackofftime.Duration30sMaximum retry backoff
HistoryRetentionDaysint30Days to retain execution history
MaxHistoryRecordsint10000Max history records
LeaderElectionboolfalseEnable consensus-based leader election
ConsensusExtensionstring"consensus"Consensus extension name
HeartbeatIntervaltime.Duration5sLeader heartbeat interval
LockTTLtime.Duration30sDistributed lock TTL
EnableAPIbooltrueEnable admin REST API
APIPrefixstring"/api/cron"API path prefix
EnableWebUIbooltrueEnable web dashboard
EnableMetricsbooltrueEnable metrics
ShutdownTimeouttime.Duration30sGraceful shutdown timeout

How is this guide?

On this page