private void processJobMetadataUpdates(
Iterable<CacheEntryEvent<? extends HadoopJobId, ? extends HadoopJobMetadata>> updated)
throws IgniteCheckedException {
UUID locNodeId = ctx.localNodeId();
for (CacheEntryEvent<? extends HadoopJobId, ? extends HadoopJobMetadata> entry : updated) {
HadoopJobId jobId = entry.getKey();
HadoopJobMetadata meta = entry.getValue();
if (meta == null || !ctx.isParticipating(meta))
continue;
if (log.isDebugEnabled())
log.debug("Processing job metadata update callback [locNodeId=" + locNodeId +
", meta=" + meta + ']');
try {
ctx.taskExecutor().onJobStateChanged(meta);
}
catch (IgniteCheckedException e) {
U.error(log, "Failed to process job state changed callback (will fail the job) " +
"[locNodeId=" + locNodeId + ", jobId=" + jobId + ", meta=" + meta + ']', e);
transform(jobId, new CancelJobProcessor(null, e));
continue;
}
processJobMetaUpdate(jobId, meta, locNodeId);
}
}