BackendBench
Coffee

Home โ€บ Spring โ€บ Every 30 seconds

Spring cron

Spring cron expression: every 30 seconds

To run a Spring job every 30 seconds, use:

*/30 * * * * *

Every 30 seconds.

Your week at a glance
fewer more runs

Upcoming runs

#LocalUTCFrom now

Copy-ready code

Why use this schedule

Twice a minute, using the seconds field that Unix cron lacks. Only schedulers built into the application, like Quartz and Spring, can express it; system cron and cloud schedulers cannot.

First runs, as an example

Starting from 1 January 2027, evaluated in UTC:

#Date and time (UTC)
1Fri, 01 Jan 2027, 00:00:00
2Fri, 01 Jan 2027, 00:00:30
3Fri, 01 Jan 2027, 00:01:00
4Fri, 01 Jan 2027, 00:01:30
5Fri, 01 Jan 2027, 00:02:00
6Fri, 01 Jan 2027, 00:02:30

Every 30 seconds in every dialect

SystemExpression
Spring (this page)*/30 * * * * *
Quartz0/30 * * * * ?
node-cron*/30 * * * * *
Azure Functions*/30 * * * * *

Need to translate a different expression? Use the cron converter.

Ready-to-use Spring config

Drop this into your project. The expression is the one above.

Spring @Scheduled
@Scheduled(cron = "*/30 * * * * *", zone = "UTC")
public void runJob() {
    // ...
}
application.properties
app.job.cron=*/30 * * * * *
# @Scheduled(cron = "${app.job.cron}")

The Spring fields, in order: second (0-59), minute (0-59), hour (0-23), day-of-month (1-31), month (1-12), day-of-week (0-7, 0 and 7 = Sunday).

Things to watch out for in Spring

The common mistake with this schedule

If a job takes more than 30 seconds, runs will overlap or be skipped depending on the scheduler. In Spring use fixedDelay when you want a gap after the job finishes.

Frequently asked questions

How do I run a Spring job every 30 seconds?

Use */30 * * * * *. Every 30 seconds.

What is the every 30 seconds cron expression in other systems?

Quartz: 0/30 * * * * ?; node-cron: */30 * * * * *; Azure Functions: */30 * * * * *. The table on this page lists every dialect.

Which time zone does Spring use for this schedule?

Spring evaluates in the server time zone by default. Add zone = "UTC" (or any ZoneId) to @Scheduled to make it explicit.

Similar Spring schedules

More tools you might need