This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
import { getQuoteRpaQueue } from "@/workers/rpa/queue";
/** Worker 重启后清理 orphan active job,避免阻塞后续候选/询价 */
export async function recoverOrphanActiveJobs(): Promise<number> {
const queue = getQuoteRpaQueue();
const active = await queue.getJobs(["active"], 0, 30);
let recovered = 0;
for (const job of active) {
try {
await job.moveToFailed(
new Error("worker restart orphan recovery"),
"0",
true,
);
recovered += 1;
console.warn(
`[rpa-queue] 已回收 orphan active job name=${job.name} id=${job.id}`,
} catch {
/* 可能已被其他 worker 接管 */
}
return recovered;