This is an automated email from the ASF dual-hosted git repository.
zihaoxiang pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git
The following commit(s) were added to refs/heads/dev by this push:
new 5b5a93375b [Chore] Add IT Case for task using taskGroup with different
taskGroupPriority (#17680)
5b5a93375b is described below
commit 5b5a93375b721aabf84ce08b949a3faccda75b6c
Author: Wenjun Ruan <[email protected]>
AuthorDate: Sat Nov 22 17:43:23 2025 +0800
[Chore] Add IT Case for task using taskGroup with different
taskGroupPriority (#17680)
---
.../integration/cases/WorkflowStartTestCase.java | 29 +++++++++++++--------
...workflow_with_fake_tasks_using_task_group.yaml} | 30 +++++++++++++++++++---
2 files changed, 46 insertions(+), 13 deletions(-)
diff --git
a/dolphinscheduler-master/src/test/java/org/apache/dolphinscheduler/server/master/integration/cases/WorkflowStartTestCase.java
b/dolphinscheduler-master/src/test/java/org/apache/dolphinscheduler/server/master/integration/cases/WorkflowStartTestCase.java
index 2508b7d3e1..b61355195e 100644
---
a/dolphinscheduler-master/src/test/java/org/apache/dolphinscheduler/server/master/integration/cases/WorkflowStartTestCase.java
+++
b/dolphinscheduler-master/src/test/java/org/apache/dolphinscheduler/server/master/integration/cases/WorkflowStartTestCase.java
@@ -125,9 +125,9 @@ public class WorkflowStartTestCase extends
AbstractMasterIntegrationTestCase {
}
@Test
- @DisplayName("Test start a workflow with one fake task(A) using task
group")
- public void testStartWorkflow_with_oneSuccessTaskUsingTaskGroup() {
- final String yaml =
"/it/start/workflow_with_one_fake_task_using_task_group.yaml";
+ @DisplayName("Test start a workflow with two fake task(A) using task
group")
+ public void testStartWorkflow_with_successTaskUsingTaskGroup() {
+ final String yaml =
"/it/start/workflow_with_fake_tasks_using_task_group.yaml";
final WorkflowTestCaseContext context =
workflowTestCaseContextFactory.initializeContextFromYaml(yaml);
final WorkflowDefinition workflow = context.getOneWorkflow();
@@ -137,19 +137,28 @@ public class WorkflowStartTestCase extends
AbstractMasterIntegrationTestCase {
.build();
workflowOperator.manualTriggerWorkflow(workflowTriggerDTO);
- workflowOperator.manualTriggerWorkflow(workflowTriggerDTO);
- workflowOperator.manualTriggerWorkflow(workflowTriggerDTO);
- workflowOperator.manualTriggerWorkflow(workflowTriggerDTO);
await()
.atMost(Duration.ofMinutes(2))
.atLeast(Duration.ofSeconds(20))
.untilAsserted(() -> {
+ final List<TaskInstance> taskInstances =
repository.queryTaskInstance(workflow);
Assertions
- .assertThat(repository.queryTaskInstance(workflow))
- .hasSize(4)
- .allMatch(taskInstance ->
TaskExecutionStatus.SUCCESS.equals(taskInstance.getState())
- && taskInstance.getTaskGroupId() ==
context.getTaskGroups().get(0).getId());
+ .assertThat(taskInstances)
+ .hasSize(2)
+ .allMatch(taskInstance ->
TaskExecutionStatus.SUCCESS.equals(taskInstance.getState()) &&
+ taskInstance.getTaskGroupId() ==
context.getTaskGroups().get(0).getId());
+
+ final TaskInstance taskA = taskInstances.stream()
+ .filter(t -> "A".equals(t.getName()))
+ .findFirst().get();
+ final TaskInstance taskB = taskInstances.stream()
+ .filter(t -> "B".equals(t.getName()))
+ .findFirst().get();
+ // TaskA's task group priority is smaller than B
+
Assertions.assertThat(taskA.getStartTime()).isAfter(taskB.getStartTime());
+
Assertions.assertThat(taskA.getEndTime()).isAfter(taskB.getEndTime());
+
});
masterContainer.assertAllResourceReleased();
diff --git
a/dolphinscheduler-master/src/test/resources/it/start/workflow_with_one_fake_task_using_task_group.yaml
b/dolphinscheduler-master/src/test/resources/it/start/workflow_with_fake_tasks_using_task_group.yaml
similarity index 71%
rename from
dolphinscheduler-master/src/test/resources/it/start/workflow_with_one_fake_task_using_task_group.yaml
rename to
dolphinscheduler-master/src/test/resources/it/start/workflow_with_fake_tasks_using_task_group.yaml
index e798e334a7..60cfbad488 100644
---
a/dolphinscheduler-master/src/test/resources/it/start/workflow_with_one_fake_task_using_task_group.yaml
+++
b/dolphinscheduler-master/src/test/resources/it/start/workflow_with_fake_tasks_using_task_group.yaml
@@ -25,11 +25,11 @@ project:
updateTime: 2021-08-12 00:00:00
workflows:
- - name: workflow_with_one_fake_task_success
+ - name: workflow_with_fake_tasks_using_task_group_success
code: 1
version: 1
projectCode: 1
- description: This is a fake workflow with single task
+ description: This is a fake workflow with two fake tasks
releaseState: ONLINE
createTime: 2024-08-12 00:00:00
updateTime: 2021-08-12 00:00:00
@@ -51,6 +51,20 @@ tasks:
updateTime: 2021-08-12 00:00:00
taskExecuteType: BATCH
+ - name: B
+ code: 2
+ version: 1
+ projectCode: 1
+ userId: 1
+ taskType: LogicFakeTask
+ taskParams: '{"localParams":null,"varPool":[],"shellScript":"sleep 5"}'
+ workerGroup: default
+ taskGroupId: 1
+ taskGroupPriority: 2
+ createTime: 2024-08-12 00:00:00
+ updateTime: 2021-08-12 00:00:00
+ taskExecuteType: BATCH
+
taskRelations:
- projectCode: 1
workflowDefinitionCode: 1
@@ -61,12 +75,22 @@ taskRelations:
postTaskVersion: 1
createTime: 2024-08-12 00:00:00
updateTime: 2024-08-12 00:00:00
+ - projectCode: 1
+ workflowDefinitionCode: 1
+ workflowDefinitionVersion: 1
+ preTaskCode: 0
+ preTaskVersion: 0
+ postTaskCode: 2
+ postTaskVersion: 1
+ createTime: 2024-08-12 00:00:00
+ updateTime: 2024-08-12 00:00:00
+
taskGroups:
- id: 1
name: default
projectCode: 1
- groupSize: 2
+ groupSize: 1
useSize: 0
userId: 1
status: YES