private static void printJobStatusMessages(List<JobStatusMessage> jobs) { SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss"); Comparator<JobStatusMessage> startTimeComparator = (o1, o2) -> (int) (o1.getStartTime() - o2.getStartTime()); Comparator<Map.Entry<JobStatus, List<JobStatusMessage>>> statusComparator = (o1, o2) -> String.CASE_INSENSITIVE_ORDER.compare(o1.getKey().toString(), o2.getKey().toString()); Map<JobStatus, List<JobStatusMessage>> jobsByState = jobs.stream().collect(Collectors.groupingBy(JobStatusMessage::getJobState)); jobsByState.entrySet().stream() .sorted(statusComparator) .map(Map.Entry::getValue).flatMap(List::stream).sorted(startTimeComparator) .forEachOrdered(job -> System.out.println(dateFormat.format(new Date(job.getStartTime())) + " : " + job.getJobId() + " : " + job.getJobName() + " (" + job.getJobState() + ")")); }
for (JobStatusMessage job : jobs) { if (job.getJobState() == JobStatus.RUNNING) { jobId = job.getJobId(); LOG.info("Job running. ID: " + jobId); break;
private static void printJobStatusMessages(List<JobStatusMessage> jobs) { SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss"); Comparator<JobStatusMessage> startTimeComparator = (o1, o2) -> (int) (o1.getStartTime() - o2.getStartTime()); Comparator<Map.Entry<JobStatus, List<JobStatusMessage>>> statusComparator = (o1, o2) -> String.CASE_INSENSITIVE_ORDER.compare(o1.getKey().toString(), o2.getKey().toString()); Map<JobStatus, List<JobStatusMessage>> jobsByState = jobs.stream().collect(Collectors.groupingBy(JobStatusMessage::getJobState)); jobsByState.entrySet().stream() .sorted(statusComparator) .map(Map.Entry::getValue).flatMap(List::stream).sorted(startTimeComparator) .forEachOrdered(job -> System.out.println(dateFormat.format(new Date(job.getStartTime())) + " : " + job.getJobId() + " : " + job.getJobName() + " (" + job.getJobState() + ")")); }
for (JobStatusMessage runningJob : runningJobs) { System.out.println(dateFormat.format(new Date(runningJob.getStartTime())) + " : " + runningJob.getJobId() + " : " + runningJob.getJobName() + " (" + runningJob.getJobState() + ")"); for (JobStatusMessage scheduledJob : scheduledJobs) { System.out.println(dateFormat.format(new Date(scheduledJob.getStartTime())) + " : " + scheduledJob.getJobId() + " : " + scheduledJob.getJobName());
private JobID waitForJobToBeReady() throws InterruptedException, ExecutionException { while (true) { JobStatusMessage jobStatus = Iterables.getFirst(flinkCluster.listJobs().get(), null); if (jobStatus != null && jobStatus.getJobState() == JobStatus.RUNNING) { return jobStatus.getJobId(); } Thread.sleep(100); } }
public JobID findJobId(ActorGateway jobManagerGateway, String jobName) throws Exception { Future<Object> response = jobManagerGateway.ask( JobManagerMessages.getRequestRunningJobsStatus(), askTimeout); Object result; try { result = Await.result(response, askTimeout); } catch (Exception e) { throw new Exception("Could not retrieve running jobs from the JobManager.", e); } if (result instanceof RunningJobsStatus) { List<JobStatusMessage> jobs = ((RunningJobsStatus) result).getStatusMessages(); for (JobStatusMessage rj : jobs) { if (rj.getJobState().equals(JobStatus.RUNNING) || rj.getJobState().equals(JobStatus.RESTARTING)) { if (rj.getJobName().equals(jobName)) return rj.getJobId(); } } } throw new Exception("Could not find job"); }
for (JobStatusMessage rj : runningJobs) { System.out.println(df.format(new Date(rj.getStartTime())) + " : " + rj.getJobId() + " : " + rj.getJobName() + " (" + rj.getJobState() + ")"); for(JobStatusMessage rj : scheduledJobs) { System.out.println(df.format(new Date(rj.getStartTime())) + " : " + rj.getJobId() + " : " + rj.getJobName());
@After public void afterTest() throws Exception { for (JobStatusMessage jobStatusMessage : flinkCluster.listJobs().get()) { if (jobStatusMessage.getJobState() == JobStatus.RUNNING) { flinkCluster.cancelJob(jobStatusMessage.getJobId()).get(); } } }
return status.getJobId();