@Override public void run() { System.out.println("PARAMETRE FIBO 2: " + jm.parameters().get("p2")); if (Integer.parseInt(jm.parameters().get("p1")) <= 100) { System.out.println("BEFORE ENQUEUE"); JobRequest.create(jm.applicationName(), jm.userName()).addParameter("p1", jm.parameters().get("p2")) .addParameter("p2", "" + (Integer.parseInt(jm.parameters().get("p2")) + Integer.parseInt(jm.parameters().get("p1")))) .submit(); } System.out.println("QUIT FIBO"); } }
@Override public void start() { log.info("Starting payload"); EntityManagerFactory emf = Persistence.createEntityManagerFactory("marsu-pu"); EntityManager em = emf.createEntityManager(); log.info("Running query"); em.createQuery("SELECT e from Entity e"); if (this.getParameters().size() == 0) { log.info("Queuing again - with parameter and through the full API"); JobRequest jd = new JobRequest("jqm-test-em", "marsu"); jd.addParameter("stop", "1"); JqmClientFactory.getClient().enqueue(jd); } log.info("End of payload"); } }
@Override public void run() { System.out.println("PARAMETRE FIBO 2: " + jm.parameters().get("p2")); if (Integer.parseInt(jm.parameters().get("p1")) <= 100) { System.out.println("BEFORE ENQUEUE"); JobRequest.create(jm.applicationName(), jm.userName()).addParameter("p1", jm.parameters().get("p2")) .addParameter("p2", "" + (Integer.parseInt(jm.parameters().get("p2")) + Integer.parseInt(jm.parameters().get("p1")))) .submit(); } System.out.println("QUIT FIBO"); } }
jd.addParameter(p.getKey(), p.getValue());
JobRequest.create("Job1", null).addParameter("key1", "value1").submit(); addAndStartEngine(); JobRequest.create("Job2", null).addParameter("key1", "value1").submit();
public void testJmsWmq() throws Exception { CreationTools.createJobDef(null, true, "com.enioka.jqm.testpackages.SuperTestPayload", null, "jqm-tests/jqm-test-jndijms-wmq/target/test.jar", TestHelpers.qVip, 42, "Jms", "Franquin", "ModuleMachin", "other1", "other2", "other3", false, cnx); JobRequest.create("Jms", "TestUser").addParameter("p1", "1").addParameter("p2", "2").submit(); // Create JMS JNDI references for use by the test jar CreationTools.createJndiQueueMQSeries(cnx, "jms/testqueue", "test Queue", "Q.GEO.OUT", null); CreationTools.createJndiQcfMQSeries(cnx, "jms/qcf", "test QCF", "10.0.1.90", "QM.TEC1", 1414, "WASCHANNEL"); addAndStartEngine(); TestHelpers.waitFor(1, 10000, cnx); Assert.assertEquals(1, TestHelpers.getOkCount(cnx)); Assert.assertEquals(0, TestHelpers.getNonOkCount(cnx)); // Exception in jar => CRASHED }
@Override public int enqueueFromHistory(int jobIdToCopy) { JobInstance h = getJob(jobIdToCopy); JobRequest jd = new JobRequest(); jd.setApplication(h.getApplication()); jd.setApplicationName(h.getApplicationName()); jd.setEmail(h.getEmail()); jd.setKeyword1(h.getKeyword1()); jd.setKeyword2(h.getKeyword2()); jd.setKeyword3(h.getKeyword3()); jd.setModule(h.getModule()); jd.setParentID(h.getParent()); jd.setSessionID(h.getSessionID()); jd.setUser(h.getUser()); for (Map.Entry<String, String> p : h.getParameters().entrySet()) { jd.addParameter(p.getKey(), p.getValue()); } return enqueue(jd); }
@Test(expected = JqmInvalidRequestException.class) public void testPriorityLimits() { int qId = Queue.create(cnx, "testqueue", " ", false); DeploymentParameter.create(cnx, TestHelpers.node.getId(), 1, 1, qId); CreationTools.createJobDef(null, true, "pyl.Wait", null, "jqm-tests/jqm-test-pyl-nodep/target/test.jar", qId, 42, "jqm-test-wait", null, "Franquin", "ModuleMachin", "other", "other", false, cnx); cnx.commit(); // No priority = FIFO queue. JobRequest.create("jqm-test-wait", "test").addParameter("ms", "100").setPriority(Integer.MAX_VALUE).submit(); }
@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()); }
@Test public void testFifo() throws Exception { // Single thread available. int qId = Queue.create(cnx, "testqueue", " ", false); DeploymentParameter.create(cnx, TestHelpers.node.getId(), 1, 1, qId); CreationTools.createJobDef(null, true, "pyl.Wait", null, "jqm-tests/jqm-test-pyl-nodep/target/test.jar", qId, 42, "jqm-test-wait", null, "Franquin", "ModuleMachin", "other", "other", false, cnx); cnx.commit(); // No priority = FIFO queue. int i1 = JobRequest.create("jqm-test-wait", "test").addParameter("ms", "100").setPriority(null).submit(); int i2 = JobRequest.create("jqm-test-wait", "test").addParameter("ms", "100").setPriority(null).submit(); addAndStartEngine(); TestHelpers.waitFor(2, 60000, cnx); Assert.assertEquals(2, TestHelpers.getOkCount(cnx)); Assert.assertEquals(0, TestHelpers.getNonOkCount(cnx)); Assert.assertEquals(0, TestHelpers.getQueueRunningCount(cnx)); JobInstance ji1 = Query.create().setJobInstanceId(i1).run().get(0); JobInstance ji2 = Query.create().setJobInstanceId(i2).run().get(0); Assert.assertTrue(ji1.getBeganRunningDate().compareTo(ji2.getEndDate()) <= 0); }
@Test public void testPriority() throws Exception { // Single thread available. int qId = Queue.create(cnx, "testqueue", " ", false); DeploymentParameter.create(cnx, TestHelpers.node.getId(), 1, 1, qId); CreationTools.createJobDef(null, true, "pyl.Wait", null, "jqm-tests/jqm-test-pyl-nodep/target/test.jar", qId, 42, "jqm-test-wait", null, "Franquin", "ModuleMachin", "other", "other", false, cnx); cnx.commit(); // Enqueue a low priority first, then a higher priority one. The higher priority should run first. int i1 = JobRequest.create("jqm-test-wait", "test").addParameter("ms", "100").setPriority(1).submit(); int i2 = JobRequest.create("jqm-test-wait", "test").addParameter("ms", "100").setPriority(6).submit(); addAndStartEngine(); TestHelpers.waitFor(2, 60000, cnx); Assert.assertEquals(2, TestHelpers.getOkCount(cnx)); Assert.assertEquals(0, TestHelpers.getNonOkCount(cnx)); Assert.assertEquals(0, TestHelpers.getQueueRunningCount(cnx)); JobInstance ji1 = Query.create().setJobInstanceId(i1).run().get(0); JobInstance ji2 = Query.create().setJobInstanceId(i2).run().get(0); Assert.assertEquals(1, (int) ji1.getPriority()); Assert.assertEquals(6, (int) ji2.getPriority()); Assert.assertTrue(ji1.getBeganRunningDate().compareTo(ji2.getEndDate()) >= 0); }