Cron Glossary
Definitions for 30 essential cron and job scheduling terms — from cron expressions and dialects to idempotency, jitter, and concurrency policies.
- AWS EventBridge
- A serverless event bus from Amazon Web Services that supports cron-based scheduling with a 6-field 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 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 further congestion.
- 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.
- 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, hour, day-of-month, month, and day-of-week — evaluated against the current time every minute. Extended dialects like Quartz add seconds and year fields.
- Cron Job Monitoring
- The practice of tracking whether scheduled jobs run on time, complete successfully, and produce expected results. Monitoring services like BetterStack and Cronitor 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.
- 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.
- 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 L modifier to target the last day of the month regardless of its length.
- 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).
- Dead Letter Queue
- A holding area for messages or job payloads that could not be processed after a configured number of attempts. In job scheduling, a DLQ captures failed executions so they can be inspected, replayed, or discarded without blocking subsequent runs. AWS SQS and Google Cloud Tasks both support DLQ configuration.
- 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 (6–7 fields with seconds and year), Jenkins (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 be scheduled in UTC.
- Field
- A single positional component of a cron expression that constrains one dimension of time. Standard cron has five fields (minute, hour, day-of-month, month, day-of-week), each with a defined numeric range. A job fires only when the current time satisfies all fields simultaneously.
- Hash-Based Scheduling
- A technique used by Jenkins 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. 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 UTC is recommended for production schedules.
- 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. 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.
- 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. Typical jitter ranges from a few seconds to a few minutes.
- Last-Day-of-Month (L)
- A special character supported by Quartz 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 January 31, February 28 (or 29), March 31, and so on. In Quartz, L can also be used in the day-of-week field to mean 'last occurrence of a weekday.'
- 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 ranges and steps in most dialects, allowing complex schedules within a single expression.
- 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 and other extended dialects add a seconds 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-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; if it is a Sunday, it runs on Monday the 16th. The W modifier never crosses month boundaries.
- Quartz Scheduler
- A widely-used open-source job scheduling library for Java applications. Quartz extends standard cron syntax with a seconds field, an optional year field, and special characters like L (last), W (nearest weekday), and # (nth weekday). 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 values — 1-5/2 matches 1, 3, and 5.
- Rate Expression
- An alternative to cron expressions used by AWS EventBridge for simple fixed-interval 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.'
- 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).
- 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 schedules 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.
- 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.