wukko a84b21a501
web/runners/remux: retry to run the worker 10 times awkwardly
this is absolutely foul and really needs fixing but i guess it works for now 😭
2025-03-06 22:50:42 +06:00

51 lines
1.6 KiB
TypeScript

import { get } from "svelte/store";
import { queue } from "$lib/state/queen-bee/queue";
import { runRemuxWorker } from "$lib/queen-bee/runners/remux";
import { runFetchWorker } from "$lib/queen-bee/runners/fetch";
import type { CobaltPipelineItem } from "$lib/types/workers";
import type { CobaltFileReference } from "$lib/types/storage";
export const killWorker = (worker: Worker, unsubscribe: () => void, interval?: NodeJS.Timeout) => {
unsubscribe();
worker.terminate();
if (interval) clearInterval(interval);
}
export const startWorker = async ({ worker, workerId, parentId, workerArgs }: CobaltPipelineItem) => {
let files: CobaltFileReference[] = [];
switch (worker) {
case "remux":
if (workerArgs?.files) {
files = workerArgs.files;
}
if (files?.length === 0) {
const parent = get(queue)[parentId];
if (parent.state === "running" && parent.pipelineResults) {
files = parent.pipelineResults;
}
}
if (files.length > 0 && workerArgs.ffargs && workerArgs.output) {
await runRemuxWorker(
workerId,
parentId,
files,
workerArgs.ffargs,
workerArgs.output,
true, // resetStartCounter
);
}
break;
case "fetch":
if (workerArgs?.url) {
await runFetchWorker(workerId, parentId, workerArgs.url)
}
break;
}
}