web/scheduler: worker pipeline sequencing, file exchange between workers

This commit is contained in:
wukko
2025-01-31 11:12:00 +06:00
parent d15f1ec8f2
commit 7caee22aee
5 changed files with 79 additions and 36 deletions

View File

@@ -35,9 +35,13 @@ export function itemError(id: string, workerId: string, error: string) {
checkTasks();
}
export function itemDone(id: string, workerId: string, file: File) {
export function itemDone(id: string, file: File) {
update(queueData => {
if (queueData[id]) {
if (queueData[id].state === "running" && queueData[id].pipelineResults) {
delete queueData[id].pipelineResults;
}
queueData[id] = {
...queueData[id],
state: "done",
@@ -47,6 +51,18 @@ export function itemDone(id: string, workerId: string, file: File) {
return queueData;
});
checkTasks();
}
export function pipelineTaskDone(id: string, workerId: string, file: File) {
update(queueData => {
if (queueData[id] && queueData[id].state === "running") {
queueData[id].pipelineResults = [...queueData[id].pipelineResults || [], file];
queueData[id].completedWorkers = [...queueData[id].completedWorkers || [], workerId];
}
return queueData;
});
removeWorkerFromQueue(workerId);
checkTasks();
}