Skip to content

Commit 75b2ade

Browse files
committed
refactor executed item event
1 parent 92c1406 commit 75b2ade

File tree

11 files changed

+73
-119
lines changed

11 files changed

+73
-119
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.flowci.core.job.event;
2+
3+
import com.flowci.core.job.domain.Executed;
4+
import lombok.Getter;
5+
import org.springframework.context.ApplicationEvent;
6+
7+
import java.util.List;
8+
9+
@Getter
10+
public abstract class ExecutedEvent<T extends Executed> extends ApplicationEvent {
11+
12+
private final String jobId;
13+
14+
private final List<T> items;
15+
16+
private final boolean init;
17+
18+
protected ExecutedEvent(Object source, String jobId, List<T> items, boolean init) {
19+
super(source);
20+
this.jobId = jobId;
21+
this.items = items;
22+
this.init = init;
23+
}
24+
}

core/src/main/java/com/flowci/core/job/event/StepInitializedEvent.java

Lines changed: 0 additions & 37 deletions
This file was deleted.

core/src/main/java/com/flowci/core/job/event/StepStatusChangeEvent.java

Lines changed: 0 additions & 40 deletions
This file was deleted.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.flowci.core.job.event;
2+
3+
import com.flowci.core.job.domain.ExecutedCmd;
4+
5+
import java.util.List;
6+
7+
public class StepUpdateEvent extends ExecutedEvent<ExecutedCmd> {
8+
9+
public StepUpdateEvent(Object source, String jobId, List<ExecutedCmd> items, boolean init) {
10+
super(source, jobId, items, init);
11+
}
12+
}

core/src/main/java/com/flowci/core/job/event/TaskStatusChangeEvent.java

Lines changed: 0 additions & 21 deletions
This file was deleted.
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.flowci.core.job.event;
2+
3+
import com.flowci.core.job.domain.ExecutedLocalTask;
4+
import lombok.Getter;
5+
6+
import java.util.List;
7+
8+
@Getter
9+
public class TaskUpdateEvent extends ExecutedEvent<ExecutedLocalTask> {
10+
11+
public TaskUpdateEvent(Object source, String jobId, List<ExecutedLocalTask> items, boolean init) {
12+
super(source, jobId, items, init);
13+
}
14+
}

core/src/main/java/com/flowci/core/job/service/LocalTaskServiceImpl.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import com.flowci.core.job.domain.Executed;
66
import com.flowci.core.job.domain.ExecutedLocalTask;
77
import com.flowci.core.job.domain.Job;
8-
import com.flowci.core.job.event.TaskStatusChangeEvent;
8+
import com.flowci.core.job.event.TaskUpdateEvent;
99
import com.flowci.core.job.manager.DockerManager;
1010
import com.flowci.core.job.manager.YmlManager;
1111
import com.flowci.core.plugin.domain.Plugin;
@@ -64,7 +64,9 @@ public void init(Job job) {
6464
t.setJobId(job.getId());
6565
tasks.add(t);
6666
}
67+
6768
executedLocalTaskDao.insert(tasks);
69+
eventManager.publish(new TaskUpdateEvent(this, job.getId(), tasks, true));
6870
}
6971

7072
@Override
@@ -105,7 +107,8 @@ public ExecutedLocalTask execute(Job job, LocalTask task) {
105107
if (event.hasError()) {
106108
String message = event.getError().getMessage();
107109
log.warn(message);
108-
updateStatusTimeAndSave(exec, Executed.Status.EXCEPTION, message);;
110+
updateStatusTimeAndSave(exec, Executed.Status.EXCEPTION, message);
111+
;
109112
return exec;
110113
}
111114

@@ -152,7 +155,7 @@ private void updateStatusTimeAndSave(ExecutedLocalTask t, Executed.Status status
152155

153156
String jobId = t.getJobId();
154157
List<ExecutedLocalTask> list = executedLocalTaskDao.findAllByJobId(jobId);
155-
eventManager.publish(new TaskStatusChangeEvent(this, t.getJobId(), list));
158+
eventManager.publish(new TaskUpdateEvent(this, t.getJobId(), list, false));
156159
}
157160

158161
private void runDockerTask(DockerManager.Option option, ExecutedLocalTask r) throws InterruptedException, RuntimeException {

core/src/main/java/com/flowci/core/job/service/PushService.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,7 @@
1616

1717
package com.flowci.core.job.service;
1818

19-
import com.flowci.core.job.event.JobCreatedEvent;
20-
import com.flowci.core.job.event.JobStatusChangeEvent;
21-
import com.flowci.core.job.event.StepInitializedEvent;
22-
import com.flowci.core.job.event.StepStatusChangeEvent;
19+
import com.flowci.core.job.event.*;
2320

2421
/**
2522
* @author yang
@@ -30,7 +27,7 @@ public interface PushService {
3027

3128
void onJobStatusChange(JobStatusChangeEvent event);
3229

33-
void onStepStatusChange(StepStatusChangeEvent event);
30+
void onStepStatusChange(StepUpdateEvent event);
3431

35-
void onStepInitialized(StepInitializedEvent event);
32+
void onTaskStatusChange(TaskUpdateEvent event);
3633
}

core/src/main/java/com/flowci/core/job/service/PushServiceImpl.java

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
import com.flowci.core.job.domain.Job;
2222
import com.flowci.core.job.event.JobCreatedEvent;
2323
import com.flowci.core.job.event.JobStatusChangeEvent;
24-
import com.flowci.core.job.event.StepInitializedEvent;
25-
import com.flowci.core.job.event.StepStatusChangeEvent;
24+
import com.flowci.core.job.event.StepUpdateEvent;
25+
import com.flowci.core.job.event.TaskUpdateEvent;
2626
import lombok.extern.log4j.Log4j2;
2727
import org.springframework.beans.factory.annotation.Autowired;
2828
import org.springframework.context.event.EventListener;
@@ -62,15 +62,18 @@ public void onJobStatusChange(JobStatusChangeEvent event) {
6262

6363
@Override
6464
@EventListener
65-
public void onStepStatusChange(StepStatusChangeEvent event) {
65+
public void onStepStatusChange(StepUpdateEvent event) {
6666
String topic = topicForSteps + "/" + event.getJobId();
67-
socketPushManager.push(topic, PushEvent.STATUS_CHANGE, event.getSteps());
67+
if (event.isInit()) {
68+
socketPushManager.push(topic, PushEvent.NEW_CREATED, event.getItems());
69+
return;
70+
}
71+
socketPushManager.push(topic, PushEvent.STATUS_CHANGE, event.getItems());
6872
}
6973

7074
@Override
7175
@EventListener
72-
public void onStepInitialized(StepInitializedEvent event) {
73-
String topic = topicForSteps + "/" + event.getJobId();
74-
socketPushManager.push(topic, PushEvent.NEW_CREATED, event.getSteps());
76+
public void onTaskStatusChange(TaskUpdateEvent event) {
77+
7578
}
7679
}

core/src/main/java/com/flowci/core/job/service/StepServiceImpl.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@
2222
import com.flowci.core.job.domain.Executed;
2323
import com.flowci.core.job.domain.ExecutedCmd;
2424
import com.flowci.core.job.domain.Job;
25-
import com.flowci.core.job.event.StepInitializedEvent;
26-
import com.flowci.core.job.event.StepStatusChangeEvent;
25+
import com.flowci.core.job.event.StepUpdateEvent;
2726
import com.flowci.core.job.manager.YmlManager;
2827
import com.flowci.exception.NotFoundException;
2928
import com.flowci.tree.NodePath;
@@ -74,7 +73,7 @@ public void init(Job job) {
7473
}
7574

7675
executedCmdDao.insert(steps);
77-
eventManager.publish(new StepInitializedEvent(this, job.getId(), steps));
76+
eventManager.publish(new StepUpdateEvent(this, job.getId(), steps, true));
7877
}
7978

8079
@Override
@@ -143,7 +142,7 @@ public ExecutedCmd toStatus(ExecutedCmd entity, Executed.Status status, String e
143142
jobStepCache.invalidate(jobId);
144143

145144
List<ExecutedCmd> steps = list(jobId, entity.getFlowId(), entity.getBuildNumber());
146-
eventManager.publish(new StepStatusChangeEvent(this, jobId, steps));
145+
eventManager.publish(new StepUpdateEvent(this, jobId, steps, false));
147146
return entity;
148147
}
149148

0 commit comments

Comments
 (0)