ruanwenjun commented on code in PR #16910:
URL: 
https://github.com/apache/dolphinscheduler/pull/16910#discussion_r1895318798


##########
dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/engine/executor/plugin/dependent/DependentTaskTracker.java:
##########
@@ -223,12 +232,40 @@ private boolean isAllDependentTaskFinished() {
             dependentExecute.getDependResultMap().forEach((dependentKey, 
dependResult) -> {
                 if (!dependResultMap.containsKey(dependentKey)) {
                     dependResultMap.put(dependentKey, dependResult);
-                    // The log is applied in: api-server obtains the result of 
the item dependent in the dependent task
-                    // node.{@link 
ProcessInstanceServiceImpl#parseLogForDependentResult}
-                    log.info("Dependent item check finished, {} dependentKey: 
{}, result: {}, dependentDate: {}",
-                            DEPENDENT_SPLIT,
-                            dependentKey,
-                            dependResult, dependentDate);
+                    DependentItem dependentItem = new 
DependentItem().fromKey(dependentKey);
+                    WorkflowDefinition workflowDefinition = 
processDefinitionMap.get(dependentItem.getDefinitionCode());
+                    Project project = 
projectCodeMap.get(workflowDefinition.getProjectCode());
+                    TaskDependentResult taskDependentResult = new 
TaskDependentResult();
+                    
taskDependentResult.setTaskInstanceId(taskExecutionContext.getTaskInstanceId());
+                    taskDependentResult.setProjectCode(project.getCode());
+                    
taskDependentResult.setWorkflowDefinitionCode(workflowDefinition.getCode());
+                    taskDependentResult.setDependentResult(dependResult);
+                    taskDependentResult.setCreateTime(new Date());
+                    taskDependentResult.setUpdateTime(new Date());
+                    if (dependentItem.getDepTaskCode() == 
Constants.DEPENDENT_ALL_TASK_CODE) {
+                        
taskDependentResult.setTaskDefinitionCode(Constants.DEPENDENT_ALL_TASK_CODE);
+                        
taskDependentResultDao.upsertTaskDependentResult(taskDependentResult);
+                        log.info(
+                                "Dependent type all task check finished, 
DependentResult: {}, DependentDate: {}, ProjectName: {}, WorkflowName: {}, 
WorkflowCode: {}, DependentCycle: {}, DependentCycleDate: {}",
+                                dependResult, dependentDate, 
project.getName(), workflowDefinition.getName(),
+                                workflowDefinition.getCode(), 
dependentItem.getCycle(), dependentItem.getDateValue());
+                    } else if (dependentItem.getDepTaskCode() == 
Constants.DEPENDENT_WORKFLOW_CODE) {
+                        
taskDependentResult.setTaskDefinitionCode(Constants.DEPENDENT_WORKFLOW_CODE);
+                        
taskDependentResultDao.upsertTaskDependentResult(taskDependentResult);
+                        log.info(
+                                "Dependent type workflow task check finished, 
DependentResult: {}, DependentDate: {}, ProjectName: {}, WorkflowName: {}, 
WorkflowCode: {}, DependentCycle: {}, DependentCycleDate: {}",
+                                dependResult, dependentDate, 
project.getName(), workflowDefinition.getName(),
+                                workflowDefinition.getCode(), 
dependentItem.getCycle(), dependentItem.getDateValue());
+                    } else {
+                        TaskDefinition taskDefinition = 
taskDefinitionMap.get(dependentItem.getDepTaskCode());
+                        
taskDependentResult.setTaskDefinitionCode(taskDefinition.getCode());
+                        
taskDependentResultDao.upsertTaskDependentResult(taskDependentResult);

Review Comment:
   It would be better if we can set the dependent result into taskInstance's 
app_link, then we can avoid importing a table here and we can also avoid query 
the dependent result in other place. cc @caishunfeng 



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to