Search in sources :

Example 11 with PhaseStatusCollection

use of com.qlangtech.tis.fullbuild.phasestatus.PhaseStatusCollection in project tis by qlangtech.

the class TestDefaultChainContext method testLoadPhaseStatusFromLatest.

public void testLoadPhaseStatusFromLatest() {
    IParamContext paramContext = this.mock("paramContext", IParamContext.class);
    DefaultChainContext chainContext = new DefaultChainContext(paramContext);
    PhaseStatusCollection statusCollection = chainContext.loadPhaseStatusFromLatest(dataXname);
    assertNull(statusCollection);
    // ./src/test/resources/com/qlangtech/tis/full/dump/cfg_repo/df-logs/66/dump
    statusCollection = chainContext.loadPhaseStatusFromLatest(dataXname);
    assertNotNull(statusCollection);
    DumpPhaseStatus dumpPhase = statusCollection.getDumpPhase();
    assertNotNull(dumpPhase);
    assertEquals(62, dumpPhase.getTaskId());
    String dataXFileName = "instancedetail_0.json";
    DumpPhaseStatus.TableDumpStatus dataXExecStatus = dumpPhase.getTable(dataXFileName);
    assertNotNull(dataXFileName + " relevant dataX instance can be null", dataXExecStatus);
    assertEquals(524525, dataXExecStatus.getReadRows());
    assertEquals(1000001, dataXExecStatus.getAllRows());
}
Also used : PhaseStatusCollection(com.qlangtech.tis.fullbuild.phasestatus.PhaseStatusCollection) IParamContext(com.qlangtech.tis.order.center.IParamContext) DefaultChainContext(com.qlangtech.tis.exec.impl.DefaultChainContext) DumpPhaseStatus(com.qlangtech.tis.fullbuild.phasestatus.impl.DumpPhaseStatus)

Example 12 with PhaseStatusCollection

use of com.qlangtech.tis.fullbuild.phasestatus.PhaseStatusCollection in project tis by qlangtech.

the class DataXJobSubmit method getDataXJobDTO.

protected CuratorDataXTaskMessage getDataXJobDTO(IJoinTaskContext taskContext, String dataXfileName) {
    CuratorDataXTaskMessage msg = new CuratorDataXTaskMessage();
    msg.setDataXName(taskContext.getIndexName());
    msg.setJobId(taskContext.getTaskId());
    msg.setJobName(dataXfileName);
    msg.setExecTimeStamp(taskContext.getPartitionTimestamp());
    PhaseStatusCollection preTaskStatus = taskContext.loadPhaseStatusFromLatest(taskContext.getIndexName());
    DumpPhaseStatus.TableDumpStatus dataXJob = null;
    if (preTaskStatus != null && (dataXJob = preTaskStatus.getDumpPhase().getTable(dataXfileName)) != null && dataXJob.getAllRows() > 0) {
        msg.setAllRowsApproximately(dataXJob.getReadRows());
    } else {
        msg.setAllRowsApproximately(-1);
    }
    return msg;
}
Also used : PhaseStatusCollection(com.qlangtech.tis.fullbuild.phasestatus.PhaseStatusCollection) DumpPhaseStatus(com.qlangtech.tis.fullbuild.phasestatus.impl.DumpPhaseStatus)

Example 13 with PhaseStatusCollection

use of com.qlangtech.tis.fullbuild.phasestatus.PhaseStatusCollection in project tis by qlangtech.

the class LogCollectorClient method convert.

public static PhaseStatusCollection convert(PPhaseStatusCollection stat, ExecutePhaseRange executePhaseRange) {
    PDumpPhaseStatus dumpPhase = stat.getDumpPhase();
    PJoinPhaseStatus joinPhase = stat.getJoinPhase();
    PBuildPhaseStatus buildPhase = stat.getBuildPhase();
    PIndexBackFlowPhaseStatus backflow = stat.getIndexBackFlowPhaseStatus();
    PhaseStatusCollection result = new PhaseStatusCollection(stat.getTaskId(), executePhaseRange);
    if (executePhaseRange.contains(FullbuildPhase.FullDump) && dumpPhase != null) {
        DumpPhaseStatus dump = result.getDumpPhase();
        dumpPhase.getTablesDumpMap().forEach((k, v) -> {
            DumpPhaseStatus.TableDumpStatus s = new DumpPhaseStatus.TableDumpStatus(v.getTableName(), v.getTaskid());
            s.setAllRows(v.getAllRows());
            s.setReadRows(v.getReadRows());
            s.setComplete(v.getComplete());
            s.setFaild(v.getFaild());
            s.setWaiting(v.getWaiting());
            dump.tablesDump.put(k, s);
        });
    }
    if (executePhaseRange.contains(FullbuildPhase.JOIN) && joinPhase != null) {
        JoinPhaseStatus join = result.getJoinPhase();
        Map<String, JoinPhaseStatus.JoinTaskStatus> sm = join.taskStatus;
        joinPhase.getTaskStatusMap().forEach((k, v) -> {
            JoinPhaseStatus.JoinTaskStatus s = new JoinPhaseStatus.JoinTaskStatus(v.getJoinTaskName());
            s.setComplete(v.getComplete());
            s.setFaild(v.getFaild());
            s.setWaiting(v.getWaiting());
            v.getJobStatusMap().forEach((jk, jv) -> {
                JobLog jl = new JobLog();
                jl.setMapper(jv.getMapper());
                jl.setReducer(jv.getReducer());
                jl.setWaiting(jv.getWaiting());
                s.jobsStatus.put(jk, jl);
            });
            sm.put(k, s);
        });
    }
    if (executePhaseRange.contains(FullbuildPhase.BUILD) && buildPhase != null) {
        BuildPhaseStatus build = result.getBuildPhase();
        buildPhase.getNodeBuildStatusMap().forEach((k, v) -> {
            com.qlangtech.tis.fullbuild.phasestatus.impl.BuildSharedPhaseStatus s = new com.qlangtech.tis.fullbuild.phasestatus.impl.BuildSharedPhaseStatus();
            s.setAllBuildSize(v.getAllBuildSize());
            s.setBuildReaded(v.getBuildReaded());
            s.setTaskid(v.getTaskid());
            s.setSharedName(v.getSharedName());
            s.setComplete(v.getComplete());
            s.setFaild(v.getFaild());
            s.setWaiting(v.getWaiting());
            build.nodeBuildStatus.put(k, s);
        });
    }
    if (executePhaseRange.contains(FullbuildPhase.IndexBackFlow) && backflow != null) {
        IndexBackFlowPhaseStatus bf = result.getIndexBackFlowPhaseStatus();
        backflow.getNodesStatusMap().forEach((k, v) -> {
            IndexBackFlowPhaseStatus.NodeBackflowStatus s = new IndexBackFlowPhaseStatus.NodeBackflowStatus(v.getNodeName());
            s.setAllSize((int) v.getAllSize());
            s.setReaded((int) v.getReaded());
            s.setComplete(v.getComplete());
            s.setFaild(v.getFaild());
            s.setWaiting(v.getWaiting());
            bf.nodesStatus.put(k, s);
        });
    }
    return result;
}
Also used : DumpPhaseStatus(com.qlangtech.tis.fullbuild.phasestatus.impl.DumpPhaseStatus) PhaseStatusCollection(com.qlangtech.tis.fullbuild.phasestatus.PhaseStatusCollection) IndexBackFlowPhaseStatus(com.qlangtech.tis.fullbuild.phasestatus.impl.IndexBackFlowPhaseStatus) BuildPhaseStatus(com.qlangtech.tis.fullbuild.phasestatus.impl.BuildPhaseStatus) JoinPhaseStatus(com.qlangtech.tis.fullbuild.phasestatus.impl.JoinPhaseStatus) JobLog(com.qlangtech.tis.fullbuild.phasestatus.JobLog)

Example 14 with PhaseStatusCollection

use of com.qlangtech.tis.fullbuild.phasestatus.PhaseStatusCollection in project tis by qlangtech.

the class DataFlowAppSource method processTaskResult.

private void processTaskResult(IExecChainContext execContext, TISReactor.TaskImpl t, IDataProcessFeedback dataProcessFeedback, ITaskResultProcessor resultProcessor) {
    TISReactor.TaskImpl task = t;
    // TrackableExecuteInterceptor.taskPhaseReference.get(execContext.getTaskId());
    PhaseStatusCollection pstats = dataProcessFeedback.getPhaseStatusSet(execContext);
    if (pstats != null) {
        switch(task.getPhase()) {
            case FullDump:
                // pstats.getDumpPhase()
                // IncrStatusUmbilicalProtocolImpl statReceiver = IncrStatusUmbilicalProtocolImpl.getInstance();
                // statReceiver.reportDumpTableStatusError(execContext.getTaskId(), task.getIdentityName());
                pstats.getDumpPhase().isComplete();
                resultProcessor.process(pstats.getDumpPhase(), task);
                return;
            case JOIN:
                // JoinPhaseStatus.JoinTaskStatus stat
                // = pstats.getJoinPhase().getTaskStatus(task.getIdentityName());
                // //statReceiver.reportBuildIndexStatErr(execContext.getTaskId(),task.getIdentityName());
                // stat.setWaiting(false);
                // stat.setFaild(true);
                // stat.setComplete(true);
                pstats.getJoinPhase().isComplete();
                resultProcessor.process(pstats.getJoinPhase(), task);
                return;
            default:
                throw new IllegalStateException("taskphase:" + task.getPhase() + " is illegal");
        }
    }
}
Also used : PhaseStatusCollection(com.qlangtech.tis.fullbuild.phasestatus.PhaseStatusCollection) TISReactor(com.qlangtech.tis.fullbuild.taskflow.TISReactor)

Aggregations

PhaseStatusCollection (com.qlangtech.tis.fullbuild.phasestatus.PhaseStatusCollection)14 DumpPhaseStatus (com.qlangtech.tis.fullbuild.phasestatus.impl.DumpPhaseStatus)5 BuildPhaseStatus (com.qlangtech.tis.fullbuild.phasestatus.impl.BuildPhaseStatus)2 File (java.io.File)2 JSONObject (com.alibaba.fastjson.JSONObject)1 TisZkClient (com.qlangtech.tis.TisZkClient)1 FullbuildPhase (com.qlangtech.tis.assemble.FullbuildPhase)1 DataXJobSubmit (com.qlangtech.tis.datax.DataXJobSubmit)1 IDataxProcessor (com.qlangtech.tis.datax.IDataxProcessor)1 ExecutePhaseRange (com.qlangtech.tis.exec.ExecutePhaseRange)1 IExecChainContext (com.qlangtech.tis.exec.IExecChainContext)1 DefaultChainContext (com.qlangtech.tis.exec.impl.DefaultChainContext)1 Describable (com.qlangtech.tis.extension.Describable)1 XmlFile (com.qlangtech.tis.extension.impl.XmlFile)1 IRemoteTaskTrigger (com.qlangtech.tis.fullbuild.indexbuild.IRemoteTaskTrigger)1 RunningStatus (com.qlangtech.tis.fullbuild.indexbuild.RunningStatus)1 JobLog (com.qlangtech.tis.fullbuild.phasestatus.JobLog)1 BuildSharedPhaseStatus (com.qlangtech.tis.fullbuild.phasestatus.impl.BuildSharedPhaseStatus)1 TableDumpStatus (com.qlangtech.tis.fullbuild.phasestatus.impl.DumpPhaseStatus.TableDumpStatus)1 IndexBackFlowPhaseStatus (com.qlangtech.tis.fullbuild.phasestatus.impl.IndexBackFlowPhaseStatus)1