use of org.quartz.SimpleTrigger in project pentaho-platform by pentaho.
the class QuartzScheduler method createQuartzTrigger.
public static Trigger createQuartzTrigger(IJobTrigger jobTrigger, QuartzJobKey jobId) throws SchedulerException {
Trigger quartzTrigger = null;
if (jobTrigger instanceof ComplexJobTrigger) {
try {
quartzTrigger = new CronTrigger(jobId.toString(), jobId.getUserName(), jobTrigger.getCronString() != null ? jobTrigger.getCronString() : QuartzCronStringFactory.createCronString((ComplexJobTrigger) jobTrigger));
} catch (ParseException e) {
throw new SchedulerException(Messages.getInstance().getString("QuartzScheduler.ERROR_0001_FAILED_TO_SCHEDULE_JOB", jobId.getJobName()), // $NON-NLS-1$
e);
}
} else if (jobTrigger instanceof SimpleJobTrigger) {
SimpleJobTrigger simpleTrigger = (SimpleJobTrigger) jobTrigger;
long interval = simpleTrigger.getRepeatInterval();
if (interval > 0) {
interval *= 1000;
}
int repeatCount = simpleTrigger.getRepeatCount() < 0 ? SimpleTrigger.REPEAT_INDEFINITELY : simpleTrigger.getRepeatCount();
quartzTrigger = new SimpleTrigger(jobId.toString(), jobId.getUserName(), simpleTrigger.getStartTime(), simpleTrigger.getEndTime(), repeatCount, interval);
} else {
// $NON-NLS-1$
throw new SchedulerException(Messages.getInstance().getString("QuartzScheduler.ERROR_0002_TRIGGER_WRONG_TYPE"));
}
quartzTrigger.setMisfireInstruction(SimpleTrigger.MISFIRE_INSTRUCTION_FIRE_NOW);
if (quartzTrigger instanceof SimpleTrigger) {
if (((SimpleTrigger) quartzTrigger).getRepeatCount() != 0) {
quartzTrigger.setMisfireInstruction(SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT);
}
}
return quartzTrigger;
}
use of org.quartz.SimpleTrigger in project pentaho-platform by pentaho.
the class QuartzScheduler method setJobTrigger.
private void setJobTrigger(Scheduler scheduler, Job job, Trigger trigger) throws SchedulerException, org.quartz.SchedulerException {
QuartzJobKey jobKey = QuartzJobKey.parse(job.getJobId());
String groupName = jobKey.getUserName();
if (trigger instanceof SimpleTrigger) {
SimpleTrigger simpleTrigger = (SimpleTrigger) trigger;
SimpleJobTrigger simpleJobTrigger = new SimpleJobTrigger();
simpleJobTrigger.setStartTime(simpleTrigger.getStartTime());
simpleJobTrigger.setEndTime(simpleTrigger.getEndTime());
simpleJobTrigger.setUiPassParam((String) job.getJobParams().get(RESERVEDMAPKEY_UIPASSPARAM));
long interval = simpleTrigger.getRepeatInterval();
if (interval > 0) {
interval /= 1000;
}
simpleJobTrigger.setRepeatInterval(interval);
simpleJobTrigger.setRepeatCount(simpleTrigger.getRepeatCount());
job.setJobTrigger(simpleJobTrigger);
} else if (trigger instanceof CronTrigger) {
CronTrigger cronTrigger = (CronTrigger) trigger;
ComplexJobTrigger complexJobTrigger = createComplexTrigger(cronTrigger.getCronExpression());
complexJobTrigger.setUiPassParam((String) job.getJobParams().get(RESERVEDMAPKEY_UIPASSPARAM));
complexJobTrigger.setCronString(((CronTrigger) trigger).getCronExpression());
job.setJobTrigger(complexJobTrigger);
if (trigger.getCalendarName() != null) {
Calendar calendar = scheduler.getCalendar(trigger.getCalendarName());
if (calendar instanceof QuartzSchedulerAvailability) {
QuartzSchedulerAvailability quartzSchedulerAvailability = (QuartzSchedulerAvailability) calendar;
complexJobTrigger.setStartTime(quartzSchedulerAvailability.getStartTime());
complexJobTrigger.setEndTime(quartzSchedulerAvailability.getEndTime());
}
}
complexJobTrigger.setCronString(((CronTrigger) trigger).getCronExpression());
}
int triggerState = scheduler.getTriggerState(job.getJobId(), groupName);
switch(triggerState) {
case Trigger.STATE_NORMAL:
job.setState(JobState.NORMAL);
break;
case Trigger.STATE_BLOCKED:
job.setState(JobState.BLOCKED);
break;
case Trigger.STATE_COMPLETE:
job.setState(JobState.COMPLETE);
break;
case Trigger.STATE_ERROR:
job.setState(JobState.ERROR);
break;
case Trigger.STATE_PAUSED:
job.setState(JobState.PAUSED);
break;
default:
job.setState(JobState.UNKNOWN);
break;
}
job.setJobName(QuartzJobKey.parse(job.getJobId()).getJobName());
job.setNextRun(trigger.getNextFireTime());
job.setLastRun(trigger.getPreviousFireTime());
}
use of org.quartz.SimpleTrigger in project BIMserver by opensourceBIM.
the class JobScheduler method addRecurringJob.
private void addRecurringJob(Class<? extends Job> class1, int intervalMillis) throws SchedulerException {
SimpleTrigger trigger = newTrigger().withIdentity("group1", class1.getSimpleName()).withSchedule(simpleSchedule().withIntervalInMilliseconds(intervalMillis).repeatForever()).build();
JobDetail job = newJob(class1).withIdentity("group1", class1.getSimpleName()).build();
sched.scheduleJob(job, trigger);
}
use of org.quartz.SimpleTrigger in project weicoder by wdcode.
the class SimpleTriggerPersistenceDelegate method updateExtendedTriggerProperties.
public int updateExtendedTriggerProperties(Connection conn, OperableTrigger trigger, String state, JobDetail jobDetail) throws SQLException, IOException {
SimpleTrigger simpleTrigger = (SimpleTrigger) trigger;
PreparedStatement ps = null;
try {
ps = conn.prepareStatement(Util.rtp(UPDATE_SIMPLE_TRIGGER, tablePrefix, schedNameLiteral));
ps.setInt(1, simpleTrigger.getRepeatCount());
ps.setBigDecimal(2, new BigDecimal(String.valueOf(simpleTrigger.getRepeatInterval())));
ps.setInt(3, simpleTrigger.getTimesTriggered());
ps.setString(4, simpleTrigger.getKey().getName());
ps.setString(5, simpleTrigger.getKey().getGroup());
return ps.executeUpdate();
} finally {
Util.closeStatement(ps);
}
}
use of org.quartz.SimpleTrigger in project iaf by ibissource.
the class ShowScheduler method trigger.
@PUT
@RolesAllowed({ "IbisDataAdmin", "IbisAdmin", "IbisTester" })
@Path("/schedules/{groupName}/job/{jobName}")
@Relation("schedules")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response trigger(@PathParam("jobName") String jobName, @PathParam("groupName") String groupName, LinkedHashMap<String, Object> json) throws ApiException {
Scheduler scheduler = getScheduler();
if (log.isInfoEnabled()) {
String commandIssuedBy = request.getRemoteHost();
commandIssuedBy += "-" + request.getRemoteAddr();
commandIssuedBy += "-" + request.getRemoteUser();
log.info("trigger job jobName [" + jobName + "] groupName [" + groupName + "] " + commandIssuedBy);
}
JobKey jobKey = JobKey.jobKey(jobName, groupName);
// PAUSE,RESUME,TRIGGER
String action = "";
for (Entry<String, Object> entry : json.entrySet()) {
String key = entry.getKey();
if (key.equalsIgnoreCase("action")) {
// Start or stop an adapter!
action = (String) entry.getValue();
}
}
try {
if ("pause".equals(action)) {
scheduler.pauseJob(jobKey);
} else if ("resume".equals(action)) {
SchedulerHelper sh = getSchedulerHelper();
JobDetail jobDetail = scheduler.getJobDetail(jobKey);
// TODO this part can be more generic in case multiple triggers
// can be configurable
List<? extends Trigger> triggers = scheduler.getTriggersOfJob(jobKey);
if (triggers != null) {
for (Trigger trigger : triggers) {
if (trigger instanceof CronTrigger) {
sh.scheduleJob(jobDetail, ((CronTrigger) trigger).getCronExpression(), -1, true);
} else if (trigger instanceof SimpleTrigger) {
sh.scheduleJob(jobDetail, null, ((SimpleTrigger) trigger).getRepeatInterval(), true);
}
}
}
scheduler.resumeJob(jobKey);
} else if ("trigger".equals(action)) {
scheduler.triggerJob(jobKey);
} else {
throw new ApiException("no (valid) action provided! Expected one of PAUSE,RESUME,TRIGGER");
}
} catch (SchedulerException e) {
throw new ApiException("Failed to " + action + " job", e);
}
return Response.status(Response.Status.OK).build();
}
Aggregations