mirror of
https://github.com/ansible/awx.git
synced 2026-02-26 07:26:03 -03:30
don't add ws events twice to job output
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user