List<ScheduledJob> sjs = ScheduledJob.select(cnx, "sj_select_for_jd_list", ids); sjdto.setCronExpression(sj.getCronExpression()); sjdto.setLastUpdated(sj.getLastUpdated()); sjdto.setParameters(sj.getParameters()); sjdto.setQueue(sj.getQueue()); sjdto.setPriority(sj.getPriority()); sjdto.setId(sj.getId()); if (dto.getId().equals(sj.getJobDefinition()))
tmp = new ScheduledJob(); tmp.setId(rs.getInt(1)); tmp.setCronExpression(rs.getString(2)); tmp.setJobDefinition(rs.getInt(3)); tmp.setQueue(rs.getInt(4) > 0 ? rs.getInt(4) : null); tmp.setPriority(rs.getInt(5) > 0 ? rs.getInt(5) : null); tmp.setLastUpdated(cnx.getCal(rs, 6));
private static Schedule getSchedule(ScheduledJob s, Map<Integer, com.enioka.jqm.api.Queue> queues) { Schedule res = new Schedule(); res.setCronExpression(s.getCronExpression()); res.setId(s.getId()); res.setPriority(s.getPriority()); res.setQueue(s.getQueue() == null ? null : queues.get(s.getQueue())); res.setParameters(s.getParameters()); return res; }
List<ScheduledJob> existingSchedules = ScheduledJob.select(cnx, "sj_select_for_jd", dto.getId()); List<ScheduledJob> toDelete = new ArrayList<>(); if (inDto.getId() == null || inDto.getId().equals(sj.getId())) cnx.runUpdate("sjprm_delete_all_for_sj", sj.getId()); cnx.runUpdate("sj_delete_by_id", sj.getId()); ScheduledJob.create(cnx, sj.getCronExpression(), dto.getId(), sj.getQueue(), sj.getPriority(), sj.getParameters()); for (ScheduledJob sj2 : existingSchedules) if (sj2.getId() == sj.getId()) if (!existing.getParameters().equals(sj.getParameters())) cnx.runUpdate("sjprm_delete_all_for_sj", existing.getId()); for (Map.Entry<String, String> e : sj.getParameters().entrySet()) if (update || !sj.getCronExpression().equals(existing.getCronExpression()) || sj.getQueue() != existing.getQueue()) ScheduledJob.create(cnx, sjdto.getCronExpression(), i, sjdto.getQueue(), sjdto.getPriority(), sjdto.getParameters());
if (runRequest.getScheduleId() != null) List<ScheduledJob> sjj = ScheduledJob.select(cnx, "sj_select_by_id", runRequest.getScheduleId()); if (sjj.size() == 0) List<JobDef> jdd = JobDef.select(cnx, "jd_select_by_id", sj.getJobDefinition()); if (jdd.size() == 0) jqmlogger.error("Invalid job request: no JobDef with ID " + sj.getJobDefinition()); throw new JqmInvalidRequestException("Invalid job request: no JobDef with ID " + sj.getJobDefinition()); jqmlogger.error("Inconsistent metadata: multiple JobDef with ID " + sj.getJobDefinition()); throw new JqmClientException("Inconsistent metadata: multiple JobDef with ID " + sj.getJobDefinition()); if (sj != null) prms.putAll(sj.getParameters()); else if (sj != null && sj.getQueue() != null) queue_id = sj.getQueue(); if (sj != null) priority = sj.getPriority();
@Override public TaskTable getTasks() { TaskTable res = new TaskTable(); DbConn cnx = null; try { cnx = Helpers.getNewDbSession(); for (ScheduledJob sj : ScheduledJob.select(cnx, "sj_select_all")) { res.add(new SchedulingPattern(sj.getCronExpression()), new JqmTask(sj)); } // Also check delayed jobs cnx.runUpdate("ji_update_delayed"); cnx.commit(); } finally { Helpers.closeQuietly(cnx); } return res; }
sjs = ScheduledJob.select(cnx, "sj_select_for_jd_list", ids); allParams = JobDefParameter.select_all(cnx, "jdprm_select_all_for_jd_list", ids); if (s.getJobDefinition() == jd.getId())
@Override public void execute(TaskExecutionContext context) throws RuntimeException { JobRequest jr = JobRequest.create("", "cron").setScheduleId(sj.getId()); JqmClientFactory.getClient().enqueue(jr); }
private int createSchedule(JobRequest jr, DbConn cnx) { // The job def JobDef jobDef = null; try { jobDef = JobDef.select_key(cnx, jr.getApplicationName()); } catch (NonUniqueResultException ex) { jqmlogger.error("There are multiple Job definition named " + jr.getApplicationName() + ". Inconsistent configuration."); closeQuietly(cnx); throw new JqmInvalidRequestException("There are multiple Job definition named " + jr.getApplicationName()); } catch (NoResultException ex) { jqmlogger.error("Job definition named " + jr.getApplicationName() + " does not exist"); closeQuietly(cnx); throw new JqmInvalidRequestException("no job definition named " + jr.getApplicationName()); } // The queue Integer queueId = null; // No override = use JD queue. if (jr.getQueueName() != null) { // use requested key if given. queueId = cnx.runSelectSingle("q_select_by_key", 1, Integer.class, jr.getQueueName()); } // The new schedule return ScheduledJob.create(cnx, jr.getRecurrence(), jobDef.getId(), queueId, jr.getPriority(), jr.getParameters()); }
List<ScheduledJob> existingSchedules = ScheduledJob.select(cnx, "sj_select_for_jd", dto.getId()); List<ScheduledJob> toDelete = new ArrayList<ScheduledJob>(); if (inDto.getId() == null || inDto.getId().equals(sj.getId())) cnx.runUpdate("sjprm_delete_all_for_sj", sj.getId()); cnx.runUpdate("sj_delete_by_id", sj.getId()); ScheduledJob.create(cnx, sj.getCronExpression(), dto.getId(), sj.getQueue(), sj.getPriority(), sj.getParameters()); for (ScheduledJob sj2 : existingSchedules) if (sj2.getId() == sj.getId()) if (!existing.getParameters().equals(sj.getParameters())) cnx.runUpdate("sjprm_delete_all_for_sj", existing.getId()); for (Map.Entry<String, String> e : sj.getParameters().entrySet()) if (update || !sj.getCronExpression().equals(existing.getCronExpression()) || sj.getQueue() != existing.getQueue()) ScheduledJob.create(cnx, sjdto.getCronExpression(), i, sjdto.getQueue(), sjdto.getPriority(), sjdto.getParameters());
@Override public TaskTable getTasks() { TaskTable res = new TaskTable(); DbConn cnx = null; try { cnx = Helpers.getNewDbSession(); for (ScheduledJob sj : ScheduledJob.select(cnx, "sj_select_all")) { res.add(new SchedulingPattern(sj.getCronExpression()), new JqmTask(sj)); } // Also check delayed jobs cnx.runUpdate("ji_update_delayed"); cnx.commit(); } finally { Helpers.closeQuietly(cnx); } return res; }
@Override public void execute(TaskExecutionContext context) throws RuntimeException { JobRequest jr = JobRequest.create("", "cron").setScheduleId(sj.getId()); JqmClientFactory.getClient().enqueue(jr); }
List<ScheduledJob> sjs = ScheduledJob.select(cnx, "sj_select_for_jd_list", ids); sjdto.setCronExpression(sj.getCronExpression()); sjdto.setLastUpdated(sj.getLastUpdated()); sjdto.setParameters(sj.getParameters()); sjdto.setQueue(sj.getQueue()); sjdto.setPriority(sj.getPriority()); sjdto.setId(sj.getId()); if (dto.getId().equals(sj.getJobDefinition()))
tmp = new ScheduledJob(); tmp.setId(rs.getInt(1)); tmp.setCronExpression(rs.getString(2)); tmp.setJobDefinition(rs.getInt(3)); tmp.setQueue(rs.getInt(4) > 0 ? rs.getInt(4) : null); tmp.setPriority(rs.getInt(5) > 0 ? rs.getInt(5) : null); tmp.setLastUpdated(cnx.getCal(rs, 6));