Bird
Raised Fist0
Spring Bootframework

Cron expressions for scheduling in Spring Boot - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a cron expression in Spring Boot scheduling?
A cron expression is a string that defines a schedule using six or seven fields to specify seconds, minutes, hours, day of month, month, day of week, and optionally year. Spring Boot uses it to run tasks at specific times.
Click to reveal answer
beginner
What does the cron expression "0 0 12 * * ?" mean in Spring Boot?
It means the task runs every day at 12:00 PM (noon). The fields represent: 0 seconds, 0 minutes, 12 hours, every day of month, every month, any day of week.
Click to reveal answer
intermediate
How many fields are there in a Spring Boot cron expression and what are they?
There are 6 or 7 fields: seconds, minutes, hours, day of month, month, day of week, and optionally year.
Click to reveal answer
intermediate
What does the special character '?' mean in a cron expression?
The '?' character means 'no specific value'. It is used in either day of month or day of week fields to avoid conflicts when one is specified and the other is not.
Click to reveal answer
beginner
How do you schedule a task to run every 5 minutes using a cron expression in Spring Boot?
Use the expression "0 0/5 * * * ?" which means: 0 seconds, every 5 minutes, every hour, every day, every month, any day of week.
Click to reveal answer
How many fields does a Spring Boot cron expression typically have?
A4
B5
C6 or 7
D8
What does the cron expression "0 15 10 * * ?" do?
ARuns at 3:10 PM every day
BRuns at 10:15 AM every day
CRuns every 10 minutes
DRuns at 15 minutes past every hour
Which character in a cron expression means 'any value'?
A*
B?
C/
D-
In Spring Boot cron expressions, what does the '?' character do?
ASpecifies a list of values
BMeans every value
CSpecifies a range
DNo specific value, used to avoid conflicts
How would you write a cron expression to run a task every hour at the 0th minute?
A0 0 * * * ?
B0 * * * * ?
C* 0 * * * ?
D0 0 0 * * ?
Explain the structure of a Spring Boot cron expression and what each field represents.
Think about the time units from smallest to largest and special optional parts.
You got /8 concepts.
    Describe how you would schedule a task to run every weekday at 9 AM using a cron expression in Spring Boot.
    Use '?' to avoid conflicts and specify weekdays in day of week.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does a cron expression in Spring Boot primarily specify?
      easy
      A. The output format of the task
      B. When a scheduled task should run
      C. The name of the scheduled task
      D. The priority of the task

      Solution

      1. Step 1: Understand the purpose of cron expressions

        Cron expressions define timing details for scheduling tasks.
      2. Step 2: Identify what cron expressions control in Spring Boot

        They tell Spring Boot exactly when to run a method automatically.
      3. Final Answer:

        When a scheduled task should run -> Option B
      4. Quick Check:

        Cron expression = schedule time [OK]
      Hint: Cron expressions set task run times, not names or outputs [OK]
      Common Mistakes:
      • Thinking cron sets task names
      • Confusing cron with output formatting
      • Assuming cron controls task priority
      2. Which of the following is the correct syntax to schedule a method to run every minute using Spring Boot's @Scheduled annotation with a cron expression?
      easy
      A. @Scheduled(cron = "*/1 * * * *")
      B. @Scheduled(cron = "* * * * *")
      C. @Scheduled(cron = "0 0/1 * * ?")
      D. @Scheduled(cron = "0 * * * * *")

      Solution

      1. Step 1: Recall Spring Boot cron format

        Spring Boot cron uses 6 fields: seconds, minutes, hours, day, month, weekday.
      2. Step 2: Identify correct expression for every minute

        "0 * * * * *" means at 0 seconds every minute, every hour, every day.
      3. Final Answer:

        @Scheduled(cron = "0 * * * * *") -> Option D
      4. Quick Check:

        6-field cron with 0 seconds = every minute [OK]
      Hint: Spring Boot cron needs 6 fields; seconds first [OK]
      Common Mistakes:
      • Using 5-field cron (missing seconds)
      • Misplacing seconds field
      • Using '?' in wrong position
      3. Given the cron expression "0 15 10 * * ?" in a Spring Boot @Scheduled annotation, when will the scheduled method run?
      medium
      A. Every day at 10:15 AM
      B. Every hour at 15 minutes past
      C. Every day at 10:00 AM
      D. Every minute at 15 seconds past

      Solution

      1. Step 1: Break down the cron fields

        Fields: seconds=0, minutes=15, hours=10, day=any, month=any, weekday=? (no specific day)
      2. Step 2: Interpret the timing

        Means run at 10:15:00 every day, ignoring weekday.
      3. Final Answer:

        Every day at 10:15 AM -> Option A
      4. Quick Check:

        0 15 10 * * ? = daily 10:15 AM [OK]
      Hint: Seconds first, then minutes, then hours in Spring cron [OK]
      Common Mistakes:
      • Confusing minutes and hours positions
      • Ignoring '?' meaning in weekday
      • Assuming it runs every hour
      4. Identify the error in this Spring Boot cron expression: @Scheduled(cron = "0 0 25 * * ?")
      medium
      A. Seconds field missing
      B. Day of month field is invalid
      C. Hour value 25 is invalid
      D. Weekday field cannot be '?'

      Solution

      1. Step 1: Check each cron field's valid range

        Seconds: 0-59, Minutes: 0-59, Hours: 0-23, Day: 1-31, Month: 1-12, Weekday: 1-7 or ?
      2. Step 2: Identify invalid value

        Hour field is 25, which is outside 0-23 range, causing error.
      3. Final Answer:

        Hour value 25 is invalid -> Option C
      4. Quick Check:

        Hour must be 0-23, 25 is invalid [OK]
      Hint: Hours max 23 in cron, check all field ranges [OK]
      Common Mistakes:
      • Using hour > 23
      • Forgetting seconds field
      • Misusing '?' in day or weekday
      5. You want to schedule a Spring Boot task to run every Monday at 8:30 AM, but only during the months of June, July, and August. Which cron expression correctly achieves this?
      hard
      A. "0 30 8 ? 6,7,8 MON"
      B. "0 30 8 * 6-8 *"
      C. "0 30 8 ? 5-8 MON"
      D. "0 30 8 ? 6-8 1"

      Solution

      1. Step 1: Understand cron fields needed

        Seconds=0, Minutes=30, Hours=8, Day=? (no specific day), Month=6,7,8 (June-Aug), Weekday=MON (Monday)
      2. Step 2: Check options for correct syntax

        "0 30 8 ? 6,7,8 MON" uses '?' for day, lists months as 6,7,8, and weekday as MON, which is correct.
      3. Final Answer:

        "0 30 8 ? 6,7,8 MON" -> Option A
      4. Quick Check:

        Use '?' for day, list months, specify MON weekday [OK]
      Hint: Use '?' for day when specifying weekday, list months with commas [OK]
      Common Mistakes:
      • Using '*' for day and weekday together
      • Using range '-' instead of commas for months
      • Using numeric weekday instead of MON
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard