public static JobExecutor getJobExecutor() { if (getTask() == null) { throw new IllegalStateException("Cannot request a job executor from outside a daemon task"); } if (jobExecutor == null) { jobExecutor = new DaemonLocalJobExecutor(); } return jobExecutor; }
public static void newStage(String name) { if (Thread.interrupted()) { throw new DaemonTaskInterrupted(); } DaemonTask task = getTask(); if (task != null) { log.info("Stage change by " + task + ": " + name); task.newStage(name); } }
public static void message(String message) { if (Thread.interrupted()) { throw new DaemonTaskInterrupted(); } DaemonTask task = getTask(); if (task != null) { log.info("Message by " + task + ": " + message); task.writeMessage(message); } }
@Override public String startJob(JobRequest jobRequest, Map<String, String> env, InputStream stdIn, ByteArrayOutputStream stdOut, ByteArrayOutputStream stdErr) { String jobId = super.startJob(jobRequest, env, stdIn, stdOut, stdErr); log.info("Starting daemon job " + jobId); DaemonTaskHandler.getTask().getRunningJobs().add(jobId); return jobId; }
@Override public void cancelAllJobs() { super.cancelAllJobs(); DaemonTaskHandler.getTask().getRunningJobs().clear(); } }
@Override public void cancelJob(String jobId) { super.cancelJob(jobId); DaemonTaskHandler.getTask().getRunningJobs().remove(jobId); }
public static <C, T> DaemonTask<C, T> submitTask(Supplier<DaemonResponse<T>> taskSupplier, String name, long timeout) { DaemonTask task = getTask(); DaemonTask<C, T> result; if (task != null) { result = task.spawnChild(taskSupplier, name, timeout); log.info(task + " spawned child " + result); } else { result = TaskRepository.submitTask(taskSupplier, name, timeout); } return result; }
public static <C, T> DaemonTask<C, T> submitTask(Supplier<DaemonResponse<T>> taskSupplier, String name) { DaemonTask task = getTask(); long timeout = task != null ? task.getTimeout() : TaskRepository.DEFAULT_TIMEOUT; return submitTask(taskSupplier, name, timeout); }
public static <U, T> DaemonResponse<U> reduceChildren(U base, BiFunction<U, ? super T, U> accumulator, BinaryOperator<U> combiner) { DaemonTask task = getTask(); if (task != null) { U responseBody = base;