on ‎2015 May 01 9:19 AM
Hi,
I'm trying to schedule a cronjob via Java code. Our case is that when I can't st scheduled cronjob that I should postpone it for 30 minutes. I thought the following code should work, but it doesn't and I can't find any documentation about it.
Does someone of you have an idea to create a trigger that will only run once on a specific time?
public void createTrigger(final CronJobModel cronJobModel) {
long t= new Date().getTime();
Date afterAddingThirtyMins=new Date(t + (1800000));
final TriggerModel triggerModel = modelService.create(TriggerModel.class);
triggerModel.setActive(Boolean.TRUE);
triggerModel.setActivationTime(afterAddingThirtyMins);
triggerModel.setRelative(true);
triggerModel.setCronJob(cronJobModel);
modelService.save(triggerModel);
}
I thought the code above should work, but the interval is now scheduled as daily while it should only run once.

Available method in TriggerModel:
setActivationTime(final Date value)
setActive(final Boolean value)
setCronExpression(final String value)
setCronJob(final CronJobModel value)
setDateRange(final StandardDateRange value)
setDay(final Integer value)
setDaysOfWeek(final List value)
setHour(final Integer value)
setJob(final JobModel value)
setMaxAcceptableDelay(final Integer value)
setMinute(final Integer value)
setMonth(final Integer value)
setRelative(final Boolean value)
setSecond(final Integer value)
setWeekInterval(final Integer value)
setYear(final Integer value)
Request clarification before answering.
I finally found out that I should set every date field with the right value, the following code worked for me:
private void createTrigger(final CronJobModel cronJobModel) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
calendar.add(Calendar.MINUTE, 30);
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm dd-MM-yyyy");
LOG.info("Cron job rescheduled to '" + sdf.format(calendar.getTime()) + "'");
final TriggerModel triggerModel = modelService.create(TriggerModel.class);
triggerModel.setActive(Boolean.TRUE);
triggerModel.setRelative(Boolean.FALSE);
triggerModel.setSecond(calendar.get(Calendar.SECOND));
triggerModel.setMinute(calendar.get(Calendar.MINUTE));
triggerModel.setHour(calendar.get(Calendar.HOUR_OF_DAY));
triggerModel.setDay(calendar.get(Calendar.DAY_OF_MONTH));
triggerModel.setMonth(calendar.get(Calendar.MONTH));
triggerModel.setYear(calendar.get(Calendar.YEAR));
triggerModel.setWeekInterval(0);
triggerModel.setCronJob(cronJobModel);
modelService.save(triggerModel);
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
| User | Count |
|---|---|
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.