Files
douyin-archive/scripts/stt-worker.ts
T

35 lines
901 B
TypeScript

import "dotenv/config";
import { setTimeout as sleep } from "node:timers/promises";
import { prisma } from "../lib/prisma";
import { workerTick } from "../lib/stt/worker";
let stopping = false;
const controller = new AbortController();
for (const signal of ["SIGTERM", "SIGINT"] as const)
process.on(signal, () => {
stopping = true;
controller.abort();
});
async function main() {
console.log("[ASR] 后台执行器已启动,最大并发 2");
try {
while (!stopping) {
try {
await workerTick();
} catch {
console.error("[ASR] 数据库调度失败,稍后重试");
}
if (!stopping)
await sleep(1000, undefined, { signal: controller.signal }).catch(
() => {},
);
}
} finally {
await prisma.$disconnect();
}
}
main().catch(() => {
console.error("[ASR] 执行器退出");
process.exitCode = 1;
});