@Test public void testExecute() throws Exception { JobStatus jobStatus = jobExecutor.getJobStatus(); assertFalse(jobStatus.isRunning()); assertTrue(jobExecutor.execute(context)); verify(job).execute(); assertEquals(jobStatus.getJobStatusType(), JobStatusType.FINISHED); }
@Test public void testExecuteFailure() throws Exception { MigratorException failure = new MigratorException("Failure"); willThrow(failure).given(job).execute(); JobStatus jobStatus = jobExecutor.getJobStatus(); assertFalse(jobStatus.isRunning()); assertTrue(jobExecutor.execute(context)); verify(job).execute(); assertEquals(failure, jobStatus.getFailure()); assertEquals(jobStatus.getJobStatusType(), JobStatusType.FINISHED); }
/** * 同步执行一个任务 * * @param jobData * @param executor * @return */ private JobResult executeJob(JobData jobData, JobExecutor executor) throws Exception { JobResult result = null; int clientRetries = HttpJobUtils.getJobClientRetries(jobData.getData().get(JobData.JOBDATA_DATA_CLIENTRETRIES)); for (int i = 1; i <= clientRetries + 1; i++) { result = executor.execute(jobData); if (result.isSuccess()) { if (i > 1) { result.getData().put(JobResult.JOBRESULT_DATA_CLIENTRETRYCOUNT, String.valueOf(i)); } break; } try { Thread.sleep(5000); } catch (InterruptedException e1) { } if (i > 1 && i == clientRetries + 1) { result.getData().put(JobResult.JOBRESULT_DATA_CLIENTRETRYCOUNT, String.valueOf(i)); } } return result; }