@Override int doWork() { JobInstance res = JqmSingleRunner.run(id); jqmlogger.info("{}", res.getState()); return 0; } }
private static void single(String option) { int id = Integer.parseInt(option); JobInstance res = JqmSingleRunner.run(id); jqmlogger.info(res.getState()); }
@Override int doWork() { jqmlogger.info("Status is: " + JqmClientFactory.getClient().getJob(id).getState()); return 0; } }
private static void getStatus(int id) { jqmlogger.info("Status is: " + JqmClientFactory.getClient().getJob(id).getState()); }
protected void displayAllHistoryTable() { java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("HH:mm:ss.SSS"); jqmlogger.debug("=========================================================================================="); for (JobInstance h : Query.create().run()) { jqmlogger.debug("JobInstance Id: " + h.getId() + " | " + h.getState() + " | JD: " + h.getApplicationName() + " | " + h.getQueueName() + " | enqueue: " + format.format(h.getEnqueueDate().getTime()) + " | exec: " + (h.getBeganRunningDate() != null ? format.format(h.getBeganRunningDate().getTime()) : null) + " | end: " + (h.getEndDate() != null ? format.format(h.getEndDate().getTime()) : null)); } jqmlogger.debug("=========================================================================================="); } }
Assert.assertEquals(com.enioka.jqm.api.State.ENDED, ji.getState()); Assert.assertEquals(2, ji.getParameters().size()); Assert.assertEquals("newvalue2", ji.getParameters().get("arg2"));
@Test public void testCancelJob() throws Exception { CreationTools.createJobDef(null, true, "App", null, "jqm-tests/jqm-test-datetimemaven/target/test.jar", TestHelpers.qVip, 42, "MarsuApplication", null, "Franquin", "ModuleMachin", "other", "other", false, cnx); int i = JobRequest.create("MarsuApplication", "TestUser").submit(); JqmClientFactory.getClient().cancelJob(i); JobRequest.create("MarsuApplication", "TestUser").submit(); addAndStartEngine(); TestHelpers.waitFor(2, 5000, cnx); List<JobInstance> res = Query.create().addSortAsc(Sort.DATEENQUEUE).run(); Assert.assertEquals(2, res.size()); Assert.assertEquals(State.CANCELLED, res.get(0).getState()); Assert.assertEquals(State.ENDED, res.get(1).getState()); }
@Test public void testHighlanderEngineRunning() throws Exception { // This test launches an infinite loop as Highlander, checks if no other job can launch. Job is killed at the end - which allows a // second one to run, which also has to be killed. CreationTools.createJobDef(null, true, "pyl.KillMe", null, "jqm-tests/jqm-test-pyl/target/test.jar", TestHelpers.qVip, 42, "kill", null, "Franquin", "ModuleMachin", "other", "other", true, cnx); addAndStartEngine(); int firstJob = JobRequest.create("kill", "TestUser").submit(); for (int i = 0; i < 100; i++) { JobRequest.create("kill", "TestUser").submit(); } Thread.sleep(3000); Calendar killTime1 = Calendar.getInstance(); JqmClientFactory.getClient().killJob(firstJob); Thread.sleep(3000); JqmClientFactory.getClient().killJob(JqmClientFactory.getClient().getUserActiveJobs("TestUser").get(0).getId()); TestHelpers.waitFor(2, 10000, cnx); List<com.enioka.jqm.api.JobInstance> res = Query.create().addSortAsc(Sort.ID).run(); Assert.assertEquals(2, res.size()); Assert.assertEquals(State.CRASHED, res.get(0).getState()); Assert.assertEquals(State.CRASHED, res.get(1).getState()); Assert.assertTrue(killTime1.compareTo(res.get(1).getBeganRunningDate()) <= 0); }
@Test public void testKillJob() throws Exception { int i = JqmSimpleTest.create(cnx, "pyl.KillMe").expectOk(0).addWaitTime(3000).run(this); JqmClientFactory.getClient().killJob(i); TestHelpers.waitFor(1, 3000, cnx); List<JobInstance> res = Query.create().run(); Assert.assertEquals(1, res.size()); Assert.assertEquals(State.CRASHED, res.get(0).getState()); }
@Test public void testPauseInQueue() throws Exception { CreationTools.createJobDef(null, true, "App", null, "jqm-tests/jqm-test-datetimemaven/target/test.jar", TestHelpers.qVip, 42, "MarsuApplication", null, "Franquin", "ModuleMachin", "other", "other", false, cnx); int i = JobRequest.create("MarsuApplication", "TestUser").submit(); JqmClientFactory.getClient().pauseQueuedJob(i); JobRequest.create("MarsuApplication", "TestUser").submit(); addAndStartEngine(); TestHelpers.waitFor(1, 5000, cnx); List<JobInstance> res1 = Query.create().addSortAsc(Sort.DATEENQUEUE).run(); List<JobInstance> res2 = Query.create().addSortAsc(Sort.DATEENQUEUE).setQueryHistoryInstances(false).setQueryLiveInstances(true) .run(); Assert.assertEquals(1, res1.size()); Assert.assertEquals(1, res2.size()); Assert.assertEquals(State.HOLDED, res2.get(0).getState()); Assert.assertEquals(State.ENDED, res1.get(0).getState()); }
@Test public void testChangeQueue() throws Exception { CreationTools.createJobDef(null, true, "App", null, "jqm-tests/jqm-test-datetimemaven/target/test.jar", TestHelpers.qVip, 42, "MarsuApplication", null, "Franquin", "ModuleMachin", "other", "other", false, cnx); int i = JobRequest.create("MarsuApplication", "TestUser").submit(); JqmClientFactory.getClient().setJobQueue(i, TestHelpers.qSlow); addAndStartEngine(); TestHelpers.waitFor(1, 10000, cnx); List<JobInstance> res = Query.create().addSortAsc(Sort.DATEENQUEUE).run(); Assert.assertEquals(1, res.size()); Assert.assertEquals(State.ENDED, res.get(0).getState()); Assert.assertEquals("SlowQueue", res.get(0).getQueue().getName()); }
@Test // Commented - waiting for one minute is long. public void testDelayedJob() { 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); Calendar runAt = Calendar.getInstance(); runAt.set(Calendar.MILLISECOND, 0); // Not needed in normal operations, but we will compare at the end. runAt.set(Calendar.SECOND, 0); runAt.add(Calendar.MINUTE, 1); JobRequest.create("MarsuApplication", "testuser").setRunAfter(runAt).submit(); Assert.assertEquals(1, TestHelpers.getQueueAllCount(cnx)); Assert.assertEquals(State.SCHEDULED, Query.create().setQueryLiveInstances(true).run().get(0).getState()); Assert.assertTrue(Query.create().setQueryLiveInstances(true).run().get(0).isFromSchedule()); Assert.assertEquals(runAt, Query.create().setQueryLiveInstances(true).run().get(0).getRunAfter()); addAndStartEngine(); TestHelpers.waitFor(1, 150000, cnx); Assert.assertEquals(1, TestHelpers.getOkCount(cnx)); Assert.assertTrue(Query.create().run().get(0).isFromSchedule()); Assert.assertTrue(Query.create().run().get(0).getBeganRunningDate().after(runAt)); }
@Test public void testJmsAmqWrongAlias() throws Exception { CreationTools.createJobDef(null, true, "com.enioka.jqm.testpackages.SuperTestPayload", null, "jqm-tests/jqm-test-jndijms-amq/target/test.jar", TestHelpers.qVip, 42, "Jms", null, "Franquin", "ModuleMachin", "other1", "other2", false, cnx); JobRequest.create("Jms", "TestUser").submit(); // Create JMS JNDI references for use by the test jar CreationTools.createJndiQueueActiveMQ(cnx, "jms/testqueue", "test queue", "Q.TEST", null); CreationTools.createJndiQcfActiveMQ(cnx, "jms/qcf2", "test QCF", "vm:broker:(tcp://localhost:1234)?persistent=false&useJmx=false", null); cnx.commit(); addAndStartEngine(); TestHelpers.waitFor(1, 10000, cnx); Assert.assertEquals(0, TestHelpers.getOkCount(cnx)); Assert.assertEquals(1, TestHelpers.getNonOkCount(cnx)); Assert.assertEquals(State.CRASHED, Query.create().run().get(0).getState()); }
@Test public void testStartHeld() { 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 i = JobRequest.create("MarsuApplication", "testuser").startHeld().submit(); addAndStartEngine(); // Should not run. sleepms(1000); Assert.assertEquals(1, TestHelpers.getQueueAllCount(cnx)); Assert.assertEquals(State.HOLDED, Query.create().setQueryLiveInstances(true).run().get(0).getState()); // Resume at will. JqmClientFactory.getClient().resumeQueuedJob(i); TestHelpers.waitFor(1, 10000, cnx); Assert.assertEquals(1, TestHelpers.getOkCount(cnx)); } }
@Test public void testStartHeld() { 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 i = JobRequest.create("MarsuApplication", "testuser").startHeld().submit(); addAndStartEngine(); // Should not run. sleepms(1000); Assert.assertEquals(1, TestHelpers.getQueueAllCount(cnx)); Assert.assertEquals(State.HOLDED, Query.create().setQueryLiveInstances(true).run().get(0).getState()); // Resume at will. JqmClientFactory.getClient().resumeQueuedJob(i); TestHelpers.waitFor(1, 10000, cnx); Assert.assertEquals(1, TestHelpers.getOkCount(cnx)); } }