Harden async task flows and enhance analysis tooling

这个提交包含在:
cryptocommuniums-afk
2026-03-15 08:05:37 +08:00
父节点 585fd5773d
当前提交 cb643ac154
修改 14 个文件,包含 566 行新增33 行删除

查看文件

@@ -10,6 +10,7 @@ function sleep(ms: number) {
}
async function workOnce() {
await db.failExhaustedBackgroundTasks();
await db.requeueStaleBackgroundTasks(new Date(Date.now() - ENV.backgroundTaskStaleMs));
const task = await db.claimNextBackgroundTask(workerId);
@@ -17,6 +18,12 @@ async function workOnce() {
return false;
}
const heartbeatTimer = setInterval(() => {
void db.heartbeatBackgroundTask(task.id, workerId).catch((error) => {
console.error(`[worker] heartbeat failed for ${task.id}:`, error);
});
}, ENV.backgroundTaskHeartbeatMs);
try {
const result = await processBackgroundTask(task);
if (result !== null) {
@@ -27,6 +34,8 @@ async function workOnce() {
await db.failBackgroundTask(task.id, message);
await db.failVisionTestRun(task.id, message);
console.error(`[worker] task ${task.id} failed:`, error);
} finally {
clearInterval(heartbeatTimer);
}
return true;