synchronized public Map<Long, CallableJob> getFinishedJobs(int limit) { Map<Long, CallableJob> toRet = new TreeMap<>(); Map<Long, CallableJob> runs = dao.getJobRuns(null, limit); for (Entry<Long, CallableJob> entry : runs.entrySet()) { Long key = entry.getKey(); CallableJob value = entry.getValue(); boolean isRunning = value.isRunning(); boolean isDone = value.isDone(); if (!isRunning && isDone) { toRet.put(key, value); } } return toRet; }
synchronized public Map<Long, CallableJob> getSuccesfulQueries(int limit) { Map<Long, CallableJob> toRet = new TreeMap<>(); Map<Long, CallableJob> runs = dao.getJobRuns(null, limit); for (Entry<Long, CallableJob> entry : runs.entrySet()) { Long key = entry.getKey(); CallableJob value = entry.getValue(); boolean isRunning = value.isRunning(); boolean isDone = value.isDone(); boolean isSuccess = value.isSuccess(); if (!isRunning && isDone && isSuccess) { toRet.put(key, value); } } return toRet; }
public static boolean isJobFailed(CallableJob cj) { boolean isRunning = cj.isRunning(); boolean isDone = cj.isDone(); boolean isSuccess = cj.isSuccess(); return !isRunning && isDone && !isSuccess; }
private boolean areAllFuturesDone(AgentConsumer consumer){ boolean result = true; for (Entry<Long, CallableJob> i : dao.getJobRuns(null, AgentConsumer.LIMIT_JOB_RUNS).entrySet()){ if (!i.getValue().isDone()){ result = false; } } return result; }
final int attempt = latest.getAttemptNumber(); boolean notMaxed = attempt < maxReruns; boolean latestFailed = latest.isDone() && !latest.isRunning() && latest.isFailed(); if (latestFailed && notMaxed) {
@Test public void testGetFailedQueries() { JobSpec aJob = TestAgent.getTestJob("David Foster Wallace", dao); aJob.setCode("not a valid query..."); dao.createJob(aJob); PlannedJob pj = new PlannedJob(aJob, Utils.getCurrentTime()); CallableJob cj = new CallableQuery(pj, dao, reporting, "example.com", mailInfo, null, drivers.get(0), null, 1); consumer.submitJob(cj); TestAgent.waitForFail(consumer, 1); boolean isSuccess = cj.isSuccess(); assertEquals(false, isSuccess); assertEquals(true, cj.isDone()); Map<Long, CallableJob> expected = new HashMap<>(); expected.put(cj.getJobId(), cj); assertEquals(expected, consumer.getFailedQueries(limit)); assertEquals(1, consumer.getFinishedJobs(limit).size()); }