Cron Glossary
Definitions for 47 essential cron and job scheduling terms — from cron expressions and dialects to idempotency, jitter, concurrency policies, and reliability patterns.
- At-Least-Once Execution
- A delivery guarantee where the scheduler ensures a job runs a minimum of one time, even if that means running more than once due to retries or failover. This model prioritises availability over exactness and requires jobs to be idempotent to be safe. Contrast with At-Most-Once Execution semantics, which sacrifice availability for correctness.
- At-Most-Once Execution
- A delivery guarantee where the scheduler fires a job trigger a single time and does not retry on failure. Suitable for jobs where duplicate execution is more harmful than a missed run, such as sending notifications. Requires careful consideration of Concurrency Policy to avoid unintended overlap.
- AWS EventBridge
- A serverless event bus from Amazon Web Services that supports cron-based scheduling with a 6-field Cron Expression format. EventBridge cron expressions include a mandatory Year Field and use mutually exclusive Day-of-Month and Day-of-Week fields. Rate Expressions offer a simpler alternative for fixed-interval schedules.
- Backoff
- A Retry Policy strategy that progressively increases the delay between successive attempts after a failure. Exponential backoff doubles the wait time with each retry, reducing load on a recovering system. Combining backoff with Jitter prevents multiple retries from synchronising and causing a Thundering Herd effect.
- Catch-Up Execution
- The behaviour of a scheduler when it starts or recovers from downtime and discovers past scheduled runs were not fired. Some schedulers replay all missed triggers; others skip them and resume from the next interval. Kubernetes CronJob exposes this via the startingDeadlineSeconds field, while systemd Timers use Persistent=true.
- Concurrency Policy
- A rule that determines what happens when a new job execution is triggered while a previous run is still in progress. Common policies include Allow (run in parallel), Forbid (skip the new run), and Replace (cancel the old run and start fresh). Kubernetes CronJobs expose this as the concurrencyPolicy field. See also Exclusive Execution Lock and Overlap.
- Cron Daemon
- A background process on Unix-like systems that wakes up every minute to check whether any scheduled jobs match the current time. The most common implementations are Vixie cron and cronie. When all five Fields of a Crontab entry match the current minute, the daemon spawns the associated command.
- cron.d Directory
- A system directory (typically /etc/cron.d/) that holds individual cron schedule files, each following the same syntax as a Crontab but with an additional username field. This directory allows packages and deployment tools to install or remove schedules without editing the main crontab. Files must be owned by root and have no executable bit set.
- Cron Expression
- A compact string of space-separated Fields that defines a recurring schedule. A standard expression has five fields — Minute Field, Hour Field, Day-of-Month, Month Field, and Day-of-Week — evaluated against the current time every minute. Extended Dialects like Quartz Scheduler add a Second Field and Year Field.
- Cron Job Monitoring
- The practice of tracking whether scheduled jobs run on time, complete successfully, and produce expected results. Monitoring services use heartbeat pings — if a job fails to check in within its expected window, an alert fires. Without monitoring, a silently failing cron job can go unnoticed for days. See also Execution History.
- Cron Syntax Validator
- A tool or library that parses a Cron Expression against a specific Dialect and reports Field-level errors, out-of-range values, or platform incompatibilities. Essential in CI pipelines to catch malformed schedules before deployment.
- Crontab
- Short for 'cron table,' a file that lists Cron Expressions alongside the commands they trigger. Each user on a Unix system can have their own crontab, managed with the crontab -e command. System-wide crontabs in /etc/crontab include an additional field specifying the user account under which the command runs. See also Environment Variable (Crontab).
- Day-of-Month
- The third Field in a standard Cron Expression, accepting values from 1 to 31. When a month has fewer days than the specified value, the job simply does not run that month. Some Dialects support the Last-Day-of-Month (L) modifier to target the last day regardless of month length, and Nearest Weekday (W) for business-day targeting.
- Day-of-Week
- The fifth Field in a standard Cron Expression, accepting values from 0 to 7 (where both 0 and 7 represent Sunday) or three-letter abbreviations like MON or FRI. In standard cron, if both Day-of-Month and Day-of-Week are set, the job runs when either condition matches (OR logic). Quartz Scheduler uses the Non-Standard Character (?) to avoid this ambiguity.
- Dead Letter Queue
- A holding area for messages or job payloads that could not be processed after a configured number of attempts defined by the Retry Policy. In job scheduling, a DLQ captures failed executions so they can be inspected, replayed, or discarded without blocking subsequent runs. See also At-Least-Once Execution for the delivery model that relies on DLQs.
- Dialect
- A variant of Cron Expression syntax with its own field count, special characters, and evaluation rules. The four major dialects are standard Unix (5 fields), Quartz Scheduler (6–7 fields with Second Field and Year Field), Jenkins H Syntax (5 fields with H hash syntax), and AWS EventBridge (6 fields with a mandatory year). Expressions are not portable across dialects without conversion.
- DST Transition
- The clock change that occurs when a region enters or exits Daylight Saving Time. During a spring-forward transition, a scheduled hour may be skipped entirely; during a fall-back transition, an hour repeats and a job may run twice. Cron Daemons handle DST differently — some skip, some double-fire — so critical jobs should use Timezone-Aware Schedules anchored to UTC.
- Environment Variable (Crontab)
- A key-value assignment placed at the top of a Crontab file (e.g., SHELL=/bin/bash, PATH=/usr/bin) that configures the execution environment for all subsequent job entries. Missing or incorrect environment variables are a leading cause of jobs that succeed interactively but fail under cron. See also MAILTO Directive.
- Exclusive Execution Lock
- A mutex or distributed lock acquired by a job at startup to prevent concurrent instances from running simultaneously. Commonly implemented with filesystem locks, Redis SET NX, or database advisory locks when the scheduler itself does not enforce mutual exclusion. An alternative to a Concurrency Policy at the application level.
- Execution History
- A persistent, queryable record of each job's trigger time, start time, duration, exit code, and output. Critical for debugging SLA breaches and providing compliance evidence. Platforms like Airflow and Temporal provide this natively; bare cron requires external log aggregation or Cron Job Monitoring services.
- Field
- A single positional component of a Cron Expression that constrains one dimension of time. Standard cron has five fields (Minute Field, Hour Field, Day-of-Month, Month Field, Day-of-Week), each with a defined numeric range. A job fires only when the current time satisfies all fields simultaneously. Each field supports Wildcard (*), Range (-), List (,), and Step Value (/) operators.
- Fixed-Rate Schedule
- A schedule defined by a constant interval from the prior run's start time (e.g., "every 5 minutes"), as opposed to a Cron Expression which fires at absolute clock positions. Used by AWS EventBridge Rate Expressions and many job frameworks. Drift occurs if execution time exceeds the interval, potentially causing Overlap.
- Hash-Based Scheduling
- A technique used by Jenkins H Syntax where the H symbol is replaced with a deterministic value derived from a hash of the job name. This spreads jobs across the available range instead of clustering them at round numbers like :00 or :30, mitigating the Thundering Herd problem. The hash is stable — the same job always resolves to the same offset.
- Hour Field
- The second Field in a standard Cron Expression, accepting values from 0 to 23 on a 24-hour clock. Hour 0 is midnight and hour 23 is 11 PM. Most Cron Daemons evaluate this field in the system's configured timezone, which is why Timezone-Aware Schedules or UTC are recommended for production.
- Idempotency
- The property of an operation that produces the same result whether executed once or multiple times. Idempotent cron jobs are resilient to accidental double-fires, retries, and Overlap — if the job runs twice, the system state is identical to a single run. Essential for At-Least-Once Execution guarantees. Achieving idempotency typically requires unique constraints, upserts, or deduplication keys.
- Jenkins H Syntax
- An extension to standard cron syntax used by Jenkins CI/CD pipelines. The H token is replaced at parse time with a hash of the job name, distributing execution across the Field's range to avoid load spikes. For example, H/15 in the Minute Field picks a stable offset like 7, 22, 37, 52 instead of 0, 15, 30, 45. See Hash-Based Scheduling for the underlying technique.
- Jitter
- A small random delay added to a scheduled execution time to prevent multiple jobs or clients from firing simultaneously. Jitter is especially useful when many cron jobs share the same schedule — without it, all jobs hit the same resources at the exact same second, creating a Thundering Herd. Typically ranges from a few seconds to a few minutes and is combined with Backoff for retries.
- Kubernetes CronJob
- A Kubernetes resource (batch/v1 CronJob) that creates Job objects on a cron schedule within a cluster. Supports Concurrency Policy (Allow, Forbid, Replace), job history limits, and startingDeadlineSeconds for Catch-Up Execution control. Schedules use standard 5-field Cron Expression syntax and are always evaluated in UTC.
- Last-Day-of-Month (L)
- A special character supported by Quartz Scheduler and AWS EventBridge that matches the final day of the current month. Using L avoids the problem of hardcoding day 28, 30, or 31 — the scheduler automatically resolves to the correct last day. In Quartz, L can also be used in the Day-of-Week field to mean 'last occurrence of a weekday in the month.'
- List (,)
- A comma-separated set of values within a single cron Field. For example, 1,15 in the Month Field means the job runs in both January and March. Lists can be combined with Range (-)s and Step Value (/)s in most Dialects, allowing complex schedules within a single expression.
- MAILTO Directive
- A Crontab Environment Variable (Crontab) that controls where cron emails the stdout/stderr of completed jobs. Setting MAILTO="" silences all output; pointing it to a real address enables lightweight alerting without external Cron Job Monitoring tooling.
- Minute Field
- The first Field in a standard Cron Expression, accepting values from 0 to 59. This is the finest granularity available in standard cron — jobs cannot be scheduled more frequently than once per minute. Quartz Scheduler and other extended Dialects add a Second Field for sub-minute precision.
- Month Field
- The fourth Field in a standard Cron Expression, accepting values from 1 to 12 or three-letter abbreviations (JAN through DEC). The abbreviations are case-insensitive in most implementations. Setting this field restricts job execution to specific months of the year.
- Nearest Weekday (W)
- A Quartz Scheduler-specific modifier used in the Day-of-Month field to select the nearest weekday (Monday–Friday) to a given date. For example, 15W means 'the weekday closest to the 15th' — if the 15th is a Saturday, the job runs on Friday the 14th. The W modifier never crosses month boundaries.
- Non-Standard Character (?)
- A wildcard used in Quartz Scheduler and some extended Dialects to mean "no specific value" in the Day-of-Month or Day-of-Week field, allowing the other field to be set without conflict. POSIX cron does not support ? — its presence is a reliable indicator of Quartz or Spring syntax. Compare with Wildcard (*).
- Overlap
- A condition where a job's execution time exceeds its scheduled interval, causing the next trigger to fire before the previous instance has completed. Without a Concurrency Policy or Exclusive Execution Lock, this leads to resource contention and compounding delays. Cron Job Monitoring services can alert when job duration consistently approaches the schedule interval.
- Quartz Scheduler
- A widely-used open-source job scheduling library for Java applications. Quartz extends standard cron syntax with a Second Field, an optional Year Field, and special characters like Last-Day-of-Month (L), Nearest Weekday (W), and the Non-Standard Character (?). Its 6–7 field format is incompatible with standard 5-field Cron Expressions.
- Range (-)
- A hyphen-separated pair of values that matches every value between the start and end, inclusive. For example, 9-17 in the Hour Field matches every hour from 9 AM through 5 PM. Ranges can be combined with Step Value (/)s — 1-5/2 matches 1, 3, and 5.
- Rate Expression
- An alternative to Cron Expressions used by AWS EventBridge for simple Fixed-Rate Schedules. A rate expression takes the form rate(value unit), where unit is minute, minutes, hour, hours, day, or days. Rate expressions are easier to read but cannot express complex patterns like 'weekdays at 9 AM.'
- Retry Policy
- A configured rule specifying how many times and at what intervals a failed job should be re-attempted before being declared definitively failed. Parameters typically include max attempts, Backoff strategy (linear, exponential with Jitter), and a final failure destination such as a Dead Letter Queue.
- Second Field
- A sub-minute precision field supported by Quartz Scheduler, Spring Scheduler, and some extended Dialects, positioned before the Minute Field. Standard POSIX/Vixie cron does not include this field; its presence shifts all other Field positions and is a common source of parse errors when switching dialects.
- Step Value (/)
- A forward slash followed by a number that defines an interval within a Field's range. The expression */10 in the Minute Field means 'every 10 minutes' — at 0, 10, 20, 30, 40, and 50. A step can also start from a specific value: 5/15 means 'starting at 5, then every 15 minutes' (5, 20, 35, 50). Combinable with Range (-)s.
- systemd Timer
- A systemd unit file pair (.timer + .service) that replaces cron for scheduling on modern Linux systems. Supports calendar expressions (OnCalendar=), monotonic intervals (OnBootSec=), persistent Catch-Up Execution (Persistent=true), and dependency ordering via systemd's unit graph. Unlike the Cron Daemon, timers support second-level granularity natively.
- Thundering Herd
- A failure pattern where a large number of jobs or requests activate simultaneously, overwhelming a shared resource like a database or API. Cron Expressions set to round times (e.g., every hour at :00) are especially prone to this effect. Mitigation strategies include Jitter, Hash-Based Scheduling, and staggered start times.
- Timezone-Aware Schedule
- A schedule anchored to a named IANA timezone (e.g., America/New_York) rather than UTC or the system clock. Mandatory for business-hour jobs; schedulers that lack this feature require manual offset management and break twice yearly during DST Transitions. Kubernetes CronJobs added timezone support (timeZone field) in Kubernetes 1.27.
- Wildcard (*)
- An asterisk in a cron Field that matches every possible value in that field's range. A wildcard never blocks execution — it effectively removes that time dimension as a constraint. For example, * in the Hour Field means the job can run during any hour, as long as the other fields match. Compare with the Non-Standard Character (?) in Quartz Scheduler.
- Year Field
- An optional seventh Field supported by AWS EventBridge and some enterprise schedulers that restricts a schedule to specific calendar years. Not part of the POSIX standard or typical Quartz Scheduler usage. Its presence in a Cron Expression signals a proprietary or extended Dialect.