private void logCancelledRequestJobs(final List<RequestJob> pendingJobs) { if(LOGGER.isTraceEnabled()) { final List<URI> executionIds=Lists.newArrayList(); for(final RequestJob job:pendingJobs) { if(!job.requiresTermination()) { executionIds.add(job.context().targetExecution().executionId()); } } if(!executionIds.isEmpty()) { LOGGER.trace("Cancelled {} pending execution enrichment request jobs ({})",pendingJobs.size(),executionIds); } else { LOGGER.trace("All execution enrichment jobs were executed"); } } }
private void logAbortedRequestJobs(final List<Runnable> unfinished) { if(LOGGER.isTraceEnabled()) { final List<URI> aborted=Lists.newArrayList(); for(final Runnable runnable:unfinished) { final RequestJob job=this.executor.unwrap(runnable,RequestJob.class); if(job!=null && !job.requiresTermination()) { aborted.add(job.context().targetExecution().executionId()); } } if(!aborted.isEmpty()) { LOGGER.trace("Aborted {} pending execution enrichment requests ({})",aborted.size(),aborted); } else { LOGGER.trace("All scheduled pending execution enrichment requests were queued."); } } }
void queueJob(final RequestJob job) { if(!job.requiresTermination() && this.terminated) { LOGGER.info("Rejected request job {} for execution {}",job.description(),job.context().targetExecution().executionId()); return; } while(true) { try { this.queue.put(job); LOGGER.trace("Queued job {}",job.description()); break; } catch (final InterruptedException e) { LOGGER.info("Enrichment Requestor interrupted while awaiting for enqueueing job {}",job.description(),e); } } }
private void retryJob(final RequestJob job) { final long retries = job.retry(5,TimeUnit.SECONDS); LOGGER. trace( "Retrying job #{} ({}): could not resolve resource for execution {} ", job.id(), retries, job.context().targetExecution().executionId()); }
private void processJob(final RequestJob job) { final URI executionResource = this.resolver. resolveExecution( job.context().targetExecution()); if(executionResource==null) { retryJob(job); } else { completeJob(job, executionResource); } }
private void completeJob(final RequestJob job, final URI executionResource) { final EnrichmentContext ctx = job.context(); boolean completed=false; try { submitEnrichmentRequest(ctx,UseCase.createRequest(executionResource,ctx)); completed=true; } catch (final Exception e) { LOGGER.error("Could not process {} ({}). Full stacktrace follows",ctx.pendingEnrichment(),executionResource,e); } finally { LOGGER.trace("{} processing job {}",completed?"Completed ":"Failed ",job.description()); EnrichmentRequestor.this.metrics.jobProcessed(job,completed); } }