if (dto.getId() != null) cnx.runUpdate("jd_update_all_fields_by_id", dto.getApplication(), dto.getApplicationName(), dto.getDescription(), dto.isEnabled(), false, dto.isHighlander(), dto.getJarPath(), dto.getJavaClassName(), null, dto.getKeyword1(), dto.getKeyword2(), dto.getKeyword3(), dto.getReasonableRuntimeLimitMinute(), dto.getModule(), PathType.valueOf(dto.getPathType()), dto.getClassLoaderId(), dto.getQueueId(), dto.getId()); cnx.runUpdate("jdprm_delete_all_for_jd", dto.getId()); for (Map.Entry<String, String> e : dto.getParameters().entrySet()) JobDefParameter.create(cnx, e.getKey(), e.getValue(), dto.getId()); if (dto.getSchedules().size() == 0) cnx.runUpdate("sjprm_delete_all_for_jd", dto.getId()); cnx.runUpdate("sj_delete_all_for_jd", dto.getId()); List<ScheduledJob> existingSchedules = ScheduledJob.select(cnx, "sj_select_for_jd", dto.getId()); List<ScheduledJob> toDelete = new ArrayList<>(); for (com.enioka.api.admin.ScheduledJob inDto : dto.getSchedules()) for (com.enioka.api.admin.ScheduledJob sj : dto.getSchedules()) ScheduledJob.create(cnx, sj.getCronExpression(), dto.getId(), sj.getQueue(), sj.getPriority(), sj.getParameters()); int i = JobDef.create(cnx, dto.getDescription(), dto.getJavaClassName(), dto.getParameters(), dto.getJarPath(), dto.getQueueId(), dto.getReasonableRuntimeLimitMinute(), dto.getApplicationName(), dto.getApplication(), dto.getModule(), dto.getKeyword1(), dto.getKeyword2(), dto.getKeyword3(), dto.isHighlander(), dto.getClassLoaderId(),
private static JobDefDto mapJobDef(ResultSet rs, int colShift) JobDefDto tmp = new JobDefDto(); try tmp.setId(rs.getInt(1 + colShift)); tmp.setApplication(rs.getString(2 + colShift)); tmp.setApplicationName(rs.getString(3 + colShift)); tmp.setClassLoaderId(rs.getInt(4 + colShift) > 0 ? rs.getInt(4 + colShift) : null); tmp.setCanBeRestarted(true); tmp.setDescription(rs.getString(5 + colShift)); tmp.setEnabled(rs.getBoolean(6 + colShift)); tmp.setHighlander(rs.getBoolean(8 + colShift)); tmp.setJarPath(rs.getString(9 + colShift)); tmp.setPathType(rs.getString(17 + colShift)); tmp.setJavaClassName(rs.getString(10 + colShift)); tmp.setKeyword1(rs.getString(12 + colShift)); tmp.setKeyword2(rs.getString(13 + colShift)); tmp.setKeyword3(rs.getString(14 + colShift)); tmp.setReasonableRuntimeLimitMinute(rs.getInt(15 + colShift)); tmp.setModule(rs.getString(16 + colShift)); tmp.setQueueId(rs.getInt(18 + colShift) > 0 ? rs.getInt(18 + colShift) : null);
allIdLists.add(currentIdList); currentIdList.add(dto.getId()); if (dto.getId().equals(id)) dto.getParameters().put(key, value); break; if (dto.getId().equals(sj.getJobDefinition())) dto.getSchedules().add(sjdto); break;
Assert.assertEquals(0, dto.getParameters().size()); dto.addSchedule(ScheduledJob.create("5 * * * *")); MetaService.upsertJobDef(cnx, dto); cnx.commit(); Assert.assertEquals(1, dto2.getSchedules().size()); Assert.assertEquals("5 * * * *", dto2.getSchedules().get(0).getCronExpression()); Assert.assertEquals(0, dto2.getSchedules().get(0).getParameters().size()); Calendar update = dto2.getSchedules().get(0).getLastUpdated(); cnx.commit(); dto2 = MetaService.getJobDef(cnx, i); Assert.assertEquals(update.getTimeInMillis(), dto2.getSchedules().get(0).getLastUpdated().getTimeInMillis()); dto2.getSchedules().get(0).addParameter("houba", "hop"); MetaService.upsertJobDef(cnx, dto2); cnx.commit(); dto2 = MetaService.getJobDef(cnx, i); Assert.assertEquals(1, dto2.getSchedules().get(0).getParameters().size()); Assert.assertNotEquals(update.getTimeInMillis(), dto2.getSchedules().get(0).getLastUpdated().getTimeInMillis()); dto2.getSchedules().get(0).removeParameter("houba"); MetaService.upsertJobDef(cnx, dto2); cnx.commit(); dto2 = MetaService.getJobDef(cnx, i); Assert.assertEquals(0, dto2.getSchedules().get(0).getParameters().size()); dto2.getSchedules().clear();
Assert.assertEquals(3, (int) jd.getSchedules().get(0).getPriority()); Assert.assertEquals("* * * * *", jd.getSchedules().get(0).getCronExpression()); Assert.assertEquals(null, jd.getSchedules().get(0).getQueue()); Assert.assertEquals("1 * * * *", jd.getSchedules().get(0).getCronExpression()); Assert.assertEquals(TestHelpers.qSlow, jd.getSchedules().get(0).getQueue()); Assert.assertEquals(4, (int) jd.getSchedules().get(0).getPriority());
public static void syncJobDefs(DbConn cnx, List<JobDefDto> dtos) { for (JobDefDto existing : getJobDef(cnx)) { boolean foundInNewSet = false; for (JobDefDto newdto : dtos) { if (newdto.getId() != null && newdto.getId().equals(existing.getId())) { foundInNewSet = true; break; } } if (!foundInNewSet) { deleteJobDef(cnx, existing.getId()); } } for (JobDefDto dto : dtos) { upsertJobDef(cnx, dto); } }
allIdLists.add(currentIdList); currentIdList.add(dto.getId()); if (dto.getId().equals(id)) dto.getParameters().put(key, value); break; if (dto.getId().equals(sj.getJobDefinition())) dto.getSchedules().add(sjdto); break;
@Test // Commented - waiting for one minute is long. public void testSimpleSchedule() { int id = CreationTools.createJobDef(null, true, "pyl.EngineApiSendMsg", null, "jqm-tests/jqm-test-pyl/target/test.jar", TestHelpers.qVip, 42, "MarsuApplication", null, "Franquin", "ModuleMachin", "other", "other", true, cnx); int scheduleId = JobRequest.create("MarsuApplication", "test user").setRecurrence("* * * * *").addParameter("key1", "value1") .submit(); JobDef jd_client = JqmClientFactory.getClient().getJobDefinition("MarsuApplication"); Assert.assertEquals(id, (int) jd_client.getId()); Assert.assertEquals(1, jd_client.getSchedules().size()); Assert.assertEquals(scheduleId, jd_client.getSchedules().get(0).getId()); Assert.assertEquals("* * * * *", jd_client.getSchedules().get(0).getCronExpression()); addAndStartEngine(); TestHelpers.waitFor(1, 150000, cnx); Assert.assertEquals(1, TestHelpers.getOkCount(cnx)); JobDefDto jd = MetaService.getJobDef(cnx, id); Assert.assertEquals(1, jd.getSchedules().size()); JqmClientFactory.getClient().removeRecurrence(scheduleId); jd = MetaService.getJobDef(cnx, id); Assert.assertEquals(0, jd.getSchedules().size()); Assert.assertTrue(Query.create().run().get(0).isFromSchedule()); }
public static void syncJobDefs(DbConn cnx, List<JobDefDto> dtos) { for (JobDefDto existing : getJobDef(cnx)) { boolean foundInNewSet = false; for (JobDefDto newdto : dtos) { if (newdto.getId() != null && newdto.getId().equals(existing.getId())) { foundInNewSet = true; break; } } if (!foundInNewSet) { deleteJobDef(cnx, existing.getId()); } } for (JobDefDto dto : dtos) { upsertJobDef(cnx, dto); } }
if (dto.getId() != null) cnx.runUpdate("jd_update_all_fields_by_id", dto.getApplication(), dto.getApplicationName(), dto.getDescription(), dto.isEnabled(), false, dto.isHighlander(), dto.getJarPath(), dto.getJavaClassName(), null, dto.getKeyword1(), dto.getKeyword2(), dto.getKeyword3(), dto.getReasonableRuntimeLimitMinute(), dto.getModule(), PathType.valueOf(dto.getPathType()), dto.getClassLoaderId(), dto.getQueueId(), dto.getId()); cnx.runUpdate("jdprm_delete_all_for_jd", dto.getId()); for (Map.Entry<String, String> e : dto.getParameters().entrySet()) JobDefParameter.create(cnx, e.getKey(), e.getValue(), dto.getId()); if (dto.getSchedules().size() == 0) cnx.runUpdate("sjprm_delete_all_for_jd", dto.getId()); cnx.runUpdate("sj_delete_all_for_jd", dto.getId()); List<ScheduledJob> existingSchedules = ScheduledJob.select(cnx, "sj_select_for_jd", dto.getId()); List<ScheduledJob> toDelete = new ArrayList<ScheduledJob>(); for (com.enioka.api.admin.ScheduledJob inDto : dto.getSchedules()) for (com.enioka.api.admin.ScheduledJob sj : dto.getSchedules()) ScheduledJob.create(cnx, sj.getCronExpression(), dto.getId(), sj.getQueue(), sj.getPriority(), sj.getParameters()); int i = JobDef.create(cnx, dto.getDescription(), dto.getJavaClassName(), dto.getParameters(), dto.getJarPath(), dto.getQueueId(), dto.getReasonableRuntimeLimitMinute(), dto.getApplicationName(), dto.getApplication(), dto.getModule(), dto.getKeyword1(), dto.getKeyword2(), dto.getKeyword3(), dto.isHighlander(), dto.getClassLoaderId(),
private static JobDefDto mapJobDef(ResultSet rs, int colShift) JobDefDto tmp = new JobDefDto(); try tmp.setId(rs.getInt(1 + colShift)); tmp.setApplication(rs.getString(2 + colShift)); tmp.setApplicationName(rs.getString(3 + colShift)); tmp.setClassLoaderId(rs.getInt(4 + colShift) > 0 ? rs.getInt(4 + colShift) : null); tmp.setCanBeRestarted(true); tmp.setDescription(rs.getString(5 + colShift)); tmp.setEnabled(rs.getBoolean(6 + colShift)); tmp.setHighlander(rs.getBoolean(8 + colShift)); tmp.setJarPath(rs.getString(9 + colShift)); tmp.setPathType(rs.getString(17 + colShift)); tmp.setJavaClassName(rs.getString(10 + colShift)); tmp.setKeyword1(rs.getString(12 + colShift)); tmp.setKeyword2(rs.getString(13 + colShift)); tmp.setKeyword3(rs.getString(14 + colShift)); tmp.setReasonableRuntimeLimitMinute(rs.getInt(15 + colShift)); tmp.setModule(rs.getString(16 + colShift)); tmp.setQueueId(rs.getInt(18 + colShift) > 0 ? rs.getInt(18 + colShift) : null);
Assert.assertEquals(1, MetaService.getJobDef(cnx, idJobDef1).getSchedules().size()); JqmClientFactory.getClient().removeRecurrence(idRec); Assert.assertEquals(0, MetaService.getJobDef(cnx, idJobDef1).getSchedules().size());