I am trying to create a Cron schedule to run at 11:55, 12:00 and 12:05 and using follwing expression-
0 0,5,55 11,12 ? * * *
However above given schedule run at 11:00, 11:05, 11:55, 12:00, 12:05, 12:55. Not sure what I have missed.
You can use 2 triggers to execute YourJob.class.
public class Scheduler extends GenericServlet {
@Override
public void init(ServletConfig config) throws ServletException {
super.init(config);
try {
// this is YOUR job
JobDetail job = JobBuilder.newJob(YourJob.class).build();
Trigger trigger1 = TriggerBuilder
.newTrigger()
.forJob(job)
.withSchedule(
CronScheduleBuilder.cronSchedule(
"0 55 11 ? * * *"
)
).build();
Trigger trigger2 = TriggerBuilder
.newTrigger()
.forJob(job)
.withSchedule(
CronScheduleBuilder.cronSchedule(
"0 0,5 12 ? * * *"
)
).build();
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
scheduler.start();
// run at 11:55 every day
scheduler.scheduleJob(job, trigger1);
// run at 12:00 and 12:05 every day
scheduler.scheduleJob(job, trigger2);
} catch (SchedulerException e) {
Logger.getLogger(Scheduler.class).error(e);
}
}
@Override
public void service(ServletRequest req, ServletResponse res) {
// ...
}
}