don't add ws events twice to job output

This commit is contained in:
Keith J. Grant
2022-09-08 16:07:41 -07:00
parent 63567fcc52
commit 2d39b81e12

View File

@@ -225,39 +225,45 @@ function JobOutput({ job, eventRelatedSearchableKeys, eventSearchableKeys }) {
} }
let batchTimeout; let batchTimeout;
let batchedEvents = []; let batchedEvents = [];
connectJobSocket(job, (data) => { const addBatchedEvents = () => {
const addBatchedEvents = () => { let min;
let min; let max;
let max; let newCssMap;
let newCssMap; batchedEvents.forEach((event) => {
batchedEvents.forEach((event) => { if (!min || event.counter < min) {
if (!min || event.counter < min) { min = event.counter;
min = event.counter;
}
if (!max || event.counter > max) {
max = event.counter;
}
const { lineCssMap } = getLineTextHtml(event);
newCssMap = {
...newCssMap,
...lineCssMap,
};
});
setWsEvents((oldWsEvents) => {
const updated = oldWsEvents.concat(batchedEvents);
jobSocketCounter.current = updated.length;
return updated.sort((a, b) => a.counter - b.counter);
});
setCssMap((prevCssMap) => ({
...prevCssMap,
...newCssMap,
}));
if (max > jobSocketCounter.current) {
jobSocketCounter.current = max;
} }
batchedEvents = []; if (!max || event.counter > max) {
}; max = event.counter;
}
const { lineCssMap } = getLineTextHtml(event);
newCssMap = {
...newCssMap,
...lineCssMap,
};
});
setWsEvents((oldWsEvents) => {
const newEvents = [];
batchedEvents.forEach((event) => {
if (!oldWsEvents.find((e) => e.id === event.id)) {
newEvents.push(event);
}
});
const updated = oldWsEvents.concat(newEvents);
jobSocketCounter.current = updated.length;
return updated.sort((a, b) => a.counter - b.counter);
});
setCssMap((prevCssMap) => ({
...prevCssMap,
...newCssMap,
}));
if (max > jobSocketCounter.current) {
jobSocketCounter.current = max;
}
batchedEvents = [];
};
connectJobSocket(job, (data) => {
if (data.group_name === `${job.type}_events`) { if (data.group_name === `${job.type}_events`) {
batchedEvents.push(data); batchedEvents.push(data);
clearTimeout(batchTimeout); clearTimeout(batchTimeout);