private void kill() { synchronized (mainSyncObj) { logger.info("Kill has been called on flow " + execId); // If the flow is paused, then we'll also unpause flowPaused = false; flowKilled = true; if (watcher != null) { logger.info("Watcher is attached. Stopping watcher."); watcher.stopWatcher(); logger.info("Watcher cancelled status is " + watcher.isWatchCancelled()); } logger.info("Killing " + activeJobRunners.size() + " jobs."); for (JobRunner runner : activeJobRunners) { runner.kill(); } } }
private void cancel() { synchronized (mainSyncObj) { logger.info("Cancel has been called on flow " + execId); flowPaused = false; flowCancelled = true; if (watcher != null) { logger.info("Watcher is attached. Stopping watcher."); watcher.stopWatcher(); logger.info("Watcher cancelled status is " + watcher.isWatchCancelled()); } logger.info("Cancelling " + activeJobRunners.size() + " jobs."); for (JobRunner runner : activeJobRunners.values()) { runner.cancel(); } if (flow.getStatus() != Status.FAILED && flow.getStatus() != Status.FAILED_FINISHING) { logger.info("Setting flow status to " + Status.KILLED.toString()); flow.setStatus(Status.KILLED); } } }
public void run() { try { if (this.executorService == null) { this.executorService = Executors.newFixedThreadPool(numJobThreads); } setupFlowExecution(); flow.setStartTime(System.currentTimeMillis()); updateFlowReference(); logger.info("Updating initial flow directory."); updateFlow(); logger.info("Fetching job and shared properties."); loadAllProperties(); this.fireEventListeners(Event.create(this, Type.FLOW_STARTED)); runFlow(); } catch (Throwable t) { if (logger != null) { logger.error("An error has occurred during the running of the flow. Quiting.", t); } flow.setStatus(Status.FAILED); } finally { if (watcher != null) { logger.info("Watcher is attached. Stopping watcher."); watcher.stopWatcher(); logger.info("Watcher cancelled status is " + watcher.isWatchCancelled()); } flow.setEndTime(System.currentTimeMillis()); logger.info("Setting end time for flow " + execId + " to " + System.currentTimeMillis()); closeLogger(); updateFlow(); this.fireEventListeners(Event.create(this, Type.FLOW_FINISHED)); } }