Skip to content

Commit

Permalink
chore(controller): prevent collecting duplicate scheduler events afte…
Browse files Browse the repository at this point in the history
…r controller restart (#2954)
  • Loading branch information
jialeicui authored Nov 10, 2023
1 parent 84d577a commit 1e02223
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

@Data
@SuperBuilder
@EqualsAndHashCode(callSuper = true)
@EqualsAndHashCode(callSuper = true, exclude = {"id"})
public class EventVo extends Event {
Long id;
}
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,9 @@ public List<EventVo> getEvents(EventRequest.RelatedResource related) {

// order by created time asc
return events.stream()
.distinct()
.map(eventConverter::toVo)
.distinct()
.sorted(Comparator.comparingLong(Event::getTimestamp))
.collect(Collectors.toList());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import ai.starwhale.mlops.api.protocol.event.Event;
import ai.starwhale.mlops.api.protocol.event.Event.EventResourceType;
import ai.starwhale.mlops.api.protocol.event.Event.EventSource;
import ai.starwhale.mlops.api.protocol.event.Event.EventType;
Expand Down Expand Up @@ -230,4 +231,22 @@ void testServerSideEvent() {
assertEquals(event.getResourceId(), 1L);
assertEquals(event.getMessage(), "foo");
}

@Test
void testDuplicateEvent() {
var eventBuilder = EventEntity.builder()
.type(EventType.INFO)
.source(EventSource.CLIENT)
.resourceType(EventResourceType.JOB)
.resourceId(2L)
.message("message")
.data("data")
.createdTime(new Date(123L));
var event1 = eventBuilder.id(1L).build();
var event2 = eventBuilder.id(2L).build();
when(eventMapper.listEventsOfResource(EventResourceType.JOB, 2L)).thenReturn(List.of(event1, event2));

var resp = eventService.getEvents(new Event.RelatedResource(EventResourceType.JOB, 2L));
assertEquals(resp.size(), 1);
}
}

0 comments on commit 1e02223

Please sign in to comment.