/** * {@inheritDoc} */ @Override public boolean diagnose(InvocationSequenceData invocation, double baseline) { try { return queue.offer(new DiagnosisInput(invocation, baseline), timeOut, TimeUnit.MILLISECONDS); } catch (InterruptedException e) { LOG.info("Specified waiting of time of BlockingQueue for DiagnosisService elapses before space is available"); return false; } }
/** * {@inheritDoc} */ @Override public void run() { try { DiagnosisInput diagnosisInput = queue.take(); engine.analyze(diagnosisInput.getInvocation(), Collections.singletonMap(RuleConstants.DIAGNOSIS_VAR_BASELINE, diagnosisInput.getBaseline())); } catch (DiagnosisEngineException e) { LOG.warn("During analyzing of DiagnosisEngine an exception occurred", e); } catch (InterruptedException e) { Thread.interrupted(); } finally { if (!diagnosisServiceExecutor.isShutdown()) { diagnosisServiceExecutor.execute(this); } } }