/** * Cancels a slave job, referred by it's id. * * @param slaveJobId * @return whether or not the job was (found and) cancelled. */ public boolean cancelJob(final String slaveJobId) { final AnalysisResultFuture resultFuture = _runningJobs.remove(slaveJobId); if (resultFuture != null) { resultFuture.cancel(); return true; } return false; }
@Override public void cancel() { if (isDone()) { // too late to cancel return; } if (!_cancelled) { for (final AnalysisResultFuture result : _results) { result.cancel(); } _cancelled = true; } }
@Override public boolean cancelJob(TenantContext tenantContext, ExecutionLog execution) { final AnalysisResultFuture resultFuture = getRunningJob(tenantContext, execution); if (resultFuture == null) { logger.info("cancelJob(...) invoked but job not found: {}, {}", tenantContext, execution); return false; } try { logger.info("Invoking cancel on job: {}, {}", tenantContext, execution); resultFuture.cancel(); return true; } catch (Exception e) { logger.warn("Unexpected exception thrown while cancelling job: " + tenantContext + ", " + execution, e); return false; } }
public void cancelIfRunning() { final javax.swing.SwingWorker.StateValue state = getState(); switch (state) { case STARTED: case DONE: try { final AnalysisResultFuture resultFuture = get(2, TimeUnit.SECONDS); if (!resultFuture.isDone()) { resultFuture.cancel(); } } catch (final Exception e) { logger.warn("Failed to cancel job", e); } break; case PENDING: logger.info("SwingWorker hasn't started yet - cancelIfRunning() invocation disregarded"); break; default: throw new IllegalArgumentException(); } } }