@Override public ExecutableState getStatus() { ExecutableManager manager = getManager(); return manager.getOutput(this.getId()).getState(); }
@Override protected void onExecuteError(Throwable exception, ExecutableContext executableContext) { super.onExecuteError(exception, executableContext); onStatusChange(executableContext, ExecuteResult.createError(exception), ExecutableState.ERROR); }
@Override public boolean isReady() { if (!super.isReady()) { return false; } for (Executable task : subTasksForCheck) { final Output output = getManager().getOutput(task.getId()); if (output.getState() != ExecutableState.SUCCEED) { return false; } } return true; }
protected void onExecuteFinished(ExecuteResult result, ExecutableContext executableContext) { setEndTime(System.currentTimeMillis()); if (!isDiscarded() && !isRunnable()) { if (result.succeed()) { getManager().updateJobOutput(getId(), ExecutableState.SUCCEED, null, result.output()); } else { getManager().updateJobOutput(getId(), ExecutableState.ERROR, null, result.output()); } } }
public boolean isReady() { final Output output = getManager().getOutput(id); return output.getState() == ExecutableState.READY; }
@Override public final Output getOutput() { return getManager().getOutput(getId()); }
private DefaultOutput parseOutput(ExecutableOutputPO jobOutput) { final DefaultOutput result = new DefaultOutput(); result.setExtra(jobOutput.getInfo()); result.setState(ExecutableState.valueOf(jobOutput.getStatus())); result.setVerboseMsg(jobOutput.getContent()); result.setLastModified(jobOutput.getLastModified()); return result; }
public final void addExtraInfo(String key, String value) { getManager().addJobInfo(getId(), key, value); }
public void pauseJob(String jobId) { AbstractExecutable job = getJob(jobId); if (job == null) { return; } updateJobOutput(jobId, ExecutableState.STOPPED, null, null); }
private void addJobOutput(AbstractExecutable executable) throws PersistentException { ExecutableOutputPO executableOutputPO = new ExecutableOutputPO(); executableOutputPO.setUuid(executable.getId()); executableDao.addJobOutput(executableOutputPO); if (executable instanceof DefaultChainedExecutable) { for (AbstractExecutable subTask : ((DefaultChainedExecutable) executable).getTasks()) { addJobOutput(subTask); } } }
@Override protected ExecuteResult doWork(ExecutableContext context) throws ExecuteException { return new ExecuteResult(ExecuteResult.State.SUCCEED, ""); } }
protected StorageCleanupJob(KylinConfig config, FileSystem defaultFs, FileSystem hbaseFs) { this.config = config; this.defaultFs = defaultFs; this.hbaseFs = hbaseFs; this.executableManager = ExecutableManager.getInstance(config); }
public final long getLastModified() { return getOutput().getLastModified(); }
@Override public String getName() { return "[BROKEN] " + super.getName(); }
protected void initConfig(KylinConfig config) { super.initConfig(config); for (AbstractExecutable sub : subTasks) { sub.initConfig(config); } }
private boolean isTableInUse(String segUuid, List<String> workingJobList) { for (String jobId : workingJobList) { AbstractExecutable abstractExecutable = executableManager.getJob(jobId); String segmentId = abstractExecutable.getParam("segmentId"); if (null == segmentId) continue; return segUuid.equals(segmentId); } return false; }