Assert.assertEquals(info.getInstanceRunList().get(1).getResultPath(), "/tmp/query1/result"); Assert.assertEquals(info.getInstanceRunList().get(1).getInstanceState(), SchedulerJobInstanceState.SUCCEEDED); scheduler.expireJob(sessionHandle, jobHandle);
/** * Updates the status of a job instance. * * @param instanceRun * @return number of rows updated. * @throws SQLException */ public int updateJobInstanceRun(SchedulerJobInstanceRun instanceRun) throws SQLException { String updateSQL = "UPDATE " + JOB_INSTANCE_RUN_TABLE + " SET " + COLUMN_END_TIME + "=?, " + COLUMN_RESULT_PATH + "=?, " + COLUMN_QUERY_HANDLE + "=?, " + COLUMN_STATUS + "=?" + " WHERE " + COLUMN_ID + "=? AND " + COLUMN_RUN_ID + "=?"; return runner.update(updateSQL, instanceRun.getEndTime(), instanceRun.getResultPath(), instanceRun.getQueryHandle() == null ? "" : instanceRun.getQueryHandle().getHandleIdString(), instanceRun.getInstanceState().name(), instanceRun.getHandle().getHandleIdString(), instanceRun.getRunId()); }
@Test(priority = 1) public void testScheduler() throws Exception { LensServices.get().init(LensServerConf.getHiveConf()); LensServices.get().start(); scheduler = LensServices.get().getService(SchedulerService.NAME); eventService = LensServices.get().getService(EventServiceImpl.NAME); setupQueryService(scheduler); LensSessionHandle sessionHandle = scheduler.openSessionAsUser(user); long currentTime = System.currentTimeMillis(); XJob job = getTestJob("0/5 * * * * ?", queryString, currentTime, currentTime + 15000); SchedulerJobHandle jobHandle = scheduler.submitAndScheduleJob(sessionHandle, job); Assert.assertNotNull(jobHandle); Assert.assertEquals(scheduler.getSchedulerDAO().getJobState(jobHandle), SchedulerJobState.SCHEDULED); // Wait for job to finish Thread.sleep(30000); List<SchedulerJobInstanceInfo> instanceHandleList = scheduler.getSchedulerDAO().getJobInstances(jobHandle); Assert.assertEquals(instanceHandleList.size() >= 3, true); Assert.assertEquals(scheduler.getSchedulerDAO().getJobState(jobHandle), SchedulerJobState.EXPIRED); // SuccessFul query eventService.notifyEvent(mockQueryEnded(instanceHandleList.get(0).getId(), QueryStatus.Status.SUCCESSFUL)); // Wait, for event to get processed Thread.sleep(2000); // Check the instance value SchedulerJobInstanceInfo info = scheduler.getSchedulerDAO() .getSchedulerJobInstanceInfo(instanceHandleList.get(0).getId()); Assert.assertEquals(info.getInstanceRunList().size(), 1); Assert.assertEquals(info.getInstanceRunList().get(0).getResultPath(), "/tmp/query1/result"); Assert.assertEquals(info.getInstanceRunList().get(0).getInstanceState(), SchedulerJobInstanceState.SUCCEEDED); scheduler.closeSession(sessionHandle); }
public int insertIntoJobInstanceRunTable(SchedulerJobInstanceRun instanceRun) throws SQLException { String insetSQL = "INSERT INTO " + JOB_INSTANCE_RUN_TABLE + " VALUES(?,?,?,?,?,?,?,?)"; return runner.update(insetSQL, instanceRun.getHandle().getHandleIdString(), instanceRun.getRunId(), instanceRun.getSessionHandle() == null ? "" : instanceRun.getSessionHandle().toString(), instanceRun.getStartTime(), instanceRun.getEndTime(), instanceRun.getResultPath(), instanceRun.getQueryHandle() == null ? "" : instanceRun.getQueryHandle().getHandleIdString(), instanceRun.getInstanceState().name()); }
Assert.assertEquals(previousInstanceInfo.getInstanceRunList().get(0).getResultPath(), "/tmp/path"); Assert.assertEquals(previousInstanceInfo.getInstanceRunList().get(0).getInstanceState(), SchedulerJobInstanceState.SUCCEEDED);