Quartz: Job Scheduling in Java
Harry
· 11 Sep 2026
· 9 views
What is Quartz?
Quartz is a full-featured job scheduler for Java. It can run jobs on cron-like schedules, fire a job a fixed number of times, persist jobs in a database and cluster across servers. Typical uses: reports at midnight, cleanup every hour, monthly invoices.

Core Concepts
- Job - the unit of work; implements
org.quartz.Jobwith anexecute()method. - Trigger - decides when a job fires (simple or cron).
- Scheduler - the engine that wires jobs and triggers together.
A Simple Job
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class CleanupJob implements Job {
public void execute(JobExecutionContext ctx) throws JobExecutionException {
System.out.println("Running cleanup at " + new java.util.Date());
}
}Scheduling It
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
scheduler.start();
JobDetail job = JobBuilder.newJob(CleanupJob.class)
.withIdentity("cleanupJob", "maintenance")
.build();
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("cleanupTrigger", "maintenance")
.startNow()
.withSchedule(CronScheduleBuilder.cronSchedule("0 0 2 * * ?")) // 2 AM daily
.build();
scheduler.scheduleJob(job, trigger);Simple Interval Triggers
Trigger everyHour = TriggerBuilder.newTrigger()
.withIdentity("hourly")
.startNow()
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInHours(1)
.repeatForever())
.build();Key Points
- Jobs hold logic; triggers hold the schedule.
- Cron expression
sec min hour day month weekday year?; the?stands for no specific value. - Always call
scheduler.start()before scheduling, andshutdown()when done.