Cron Job
A cron job is a scheduled task that runs automatically at defined intervals. Named after the Unix cron daemon, it uses a specific syntax to define execution frequency and timing.
Cron Expression Syntax
┌───────── minute (0-59)│ ┌───────── hour (0-23)│ │ ┌───────── day of month (1-31)│ │ │ ┌───────── month (1-12)│ │ │ │ ┌───────── day of week (0-7)│ │ │ │ │* * * * *Examples
0 9 * * *— Every day at 9:00 AM*/5 * * * *— Every 5 minutes0 0 * * 1— Every Monday at midnight0 0 1 * *— First day of every month at midnight
Cron Jobs in Modern Applications
Traditional cron jobs run on a single server, which creates problems:
- Single point of failure: If the server goes down, scheduled tasks stop
- No retry logic: Failed tasks are simply lost
- No visibility: No dashboard or logs for scheduled executions
- Scaling issues: Can’t distribute across multiple machines
Managed Scheduling with AsyncQueue
AsyncQueue replaces traditional cron with a managed scheduling service:
- Create scheduled tasks via API with cron expressions
- Automatic execution with retry logic on failure
- Full visibility into every execution in the dashboard
- No servers to manage or monitor
await asyncqueue.tasks.create({ targetUrl: "https://api.example.com/daily-report", schedule: "0 9 * * *", // Every day at 9 AM retries: 3});