📖 Scenario: You are building a simple Deno script that runs a task every minute using a cron scheduler. This is useful for real-world jobs like sending reminders or cleaning up files automatically.
🎯 Goal: Create a Deno script that uses a cron scheduler to print a message every minute.
📋 What You'll Learn
Create a cron schedule string for every minute
Import and use the Cron class from https://deno.land/x/croner@6.0.0/mod.ts
Set up a cron job that logs 'Task running every minute' to the console
Start the cron job so it runs automatically
💡 Why This Matters
🌍 Real World
Scheduled tasks like backups, reminders, or cleanup jobs often run automatically on servers using cron jobs.
💼 Career
Knowing how to schedule tasks with cron in Deno is useful for backend developers and DevOps engineers automating routine jobs.
Progress0 / 4 steps
1
Set up the cron schedule string
Create a variable called schedule and set it to the string "* * * * *" which means every minute.
Deno
Hint
The cron string * * * * * means the task runs every minute.
2
Import the Cron class
Import the Cron class from https://deno.land/x/croner@6.0.0/mod.ts using an import statement.
Deno
Hint
Use import { Cron } from "https://deno.land/x/croner@6.0.0/mod.ts"; to get the Cron class.
3
Create the cron job
Create a variable called job and assign it a new Cron instance using the schedule variable. Pass a function that logs 'Task running every minute' to the console as the second argument.
Deno
Hint
Use new Cron(schedule, () => { console.log('Task running every minute'); }, { paused: true }) to create the job.
4
Start the cron job
Call the start() method on the job variable to begin running the scheduled task.
Deno
Hint
Use job.start() to activate the cron job.
Practice
(1/5)
1. What is the main purpose of using scheduled tasks (cron) in Deno?
easy
A. To compile Deno scripts faster
B. To manually trigger functions on user input
C. To debug code step-by-step
D. To run code automatically at specific times or intervals
Solution
Step 1: Understand scheduled tasks
Scheduled tasks run code automatically without manual intervention.
Step 2: Identify cron job purpose in Deno
Deno's cron jobs automate running code at set times or intervals.
Final Answer:
To run code automatically at specific times or intervals -> Option D
Quick Check:
Scheduled tasks = automatic timed code run [OK]
Hint: Scheduled tasks run code on a timer, not manually [OK]
Common Mistakes:
Confusing scheduled tasks with manual triggers
Thinking cron is for debugging
Assuming cron speeds up compilation
2. Which of the following is the correct way to import the croner library in a Deno script?
easy
A. import Cron from "croner";
B. require('croner');
C. import { Cron } from "https://deno.land/x/croner@6.0.0/mod.ts";
D. import * as Cron from 'cron';
Solution
Step 1: Check Deno import style
Deno uses ES module imports with URLs, not CommonJS require.
Step 2: Identify correct croner import
The official croner import uses a URL with version and named import.
Final Answer:
import { Cron } from "https://deno.land/x/croner@6.0.0/mod.ts"; -> Option C
Quick Check:
Deno imports use URLs and named imports [OK]
Hint: Deno imports use full URLs, not short names or require [OK]
Common Mistakes:
Using require() which is Node.js style
Importing from 'cron' instead of 'croner'
Using wildcard import without URL
3. What will the following Deno croner code output when run?
import { Cron } from "https://deno.land/x/croner@6.0.0/mod.ts";
const cron = new Cron("* * * * *", () => {
console.log("Hello every minute");
});
cron.start();
medium
A. Prints "Hello every minute" every second
B. Prints "Hello every minute" every minute
C. Prints "Hello every minute" once immediately
D. Throws a syntax error
Solution
Step 1: Understand the cron pattern "* * * * *"
This pattern means the task runs every minute.
Step 2: Analyze the callback behavior
The callback logs "Hello every minute" each time the cron triggers.
Final Answer:
Prints "Hello every minute" every minute -> Option B
Quick Check:
Cron pattern "* * * * *" = every minute [OK]
Hint: Five stars in cron means every minute [OK]
Common Mistakes:
Thinking it runs every second
Expecting immediate output without waiting
Confusing cron syntax with other formats
4. Identify the error in this Deno croner code snippet:
import { Cron } from "https://deno.land/x/croner@6.0.0/mod.ts";
const cron = new Cron("60 * * * *", () => {
console.log("This runs every hour");
});
cron.start();
medium
A. The cron pattern "60 * * * *" is invalid because minutes must be 0-59
B. Missing await before cron.start()
C. Callback function should be async
D. Cron library does not support hourly tasks
Solution
Step 1: Check the cron pattern validity
Minutes field must be between 0 and 59; "60" is invalid.
Step 2: Confirm other code parts
cron.start() does not require await; callback can be sync; hourly tasks are supported.
Final Answer:
The cron pattern "60 * * * *" is invalid because minutes must be 0-59 -> Option A
Quick Check:
Minutes range = 0-59, 60 is invalid [OK]
Hint: Minutes in cron must be 0-59, not 60 or above [OK]
Common Mistakes:
Using invalid minute value 60
Thinking cron.start() needs await
Assuming callback must be async
5. You want to schedule a Deno task to run every weekday at 9:30 AM using croner. Which cron pattern is correct?
hard
A. 30 9 * * 1-5
B. 9 30 * * 1-5
C. 30 9 * * 6,7
D. 0 9 * * 1-5
Solution
Step 1: Understand cron fields order
Cron fields are: minute, hour, day of month, month, day of week.
Step 2: Match 9:30 AM on weekdays
Minute = 30, hour = 9, day of week = 1-5 (Monday to Friday).
Final Answer:
"30 9 * * 1-5" -> Option A
Quick Check:
Minute=30, Hour=9, Weekdays=1-5 [OK]
Hint: Minute first, hour second, weekdays 1-5 for Mon-Fri [OK]
Common Mistakes:
Swapping hour and minute fields
Using weekend days 6,7 instead of weekdays
Setting minute or hour to zero incorrectly
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.