Files
mcn-short-video/project/短视频脚本创作/V1.0/mcn-work-shop/poll-review-tasks.cjs
T
maogeigei e776bd2c7c 工作台迭代:技能挂载收口(F1/F2补mcn-dou-analysis)+文案改名(AI脚本评分/AI脚本)+周榜关注按钮+AI写脚本列表页全量分页/关注优先/时间倒序/标题跳详情/发布时间筛选
- 8处/api/run入口全部参数级技能挂载\n- listVideos全量625条分页+关注优先+发布时间倒序+days筛选\n- .gitignore忽略数据库备份文件
2026-09-01 18:33:20 +08:00

41 lines
1.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* poll-review-tasks.cjs — 轮询 6 条复盘任务(/api/run/status,ACCEPTED 已归 done)*/
const TASKS = [
{ rw: 31, id: 'automation-1788251452496' },
{ rw: 30, id: 'automation-1788251455526' },
{ rw: 29, id: 'automation-1788251458549' },
{ rw: 28, id: 'automation-1788251461578' },
{ rw: 27, id: 'automation-1788251464600' },
{ rw: 26, id: 'automation-1788251467630' },
];
const state = {};
TASKS.forEach((t) => (state[t.rw] = 'pending'));
const status = async (id) => {
try {
const r = await fetch('http://localhost:8900/api/run/status?id=' + encodeURIComponent(id));
const d = await r.json();
return d.state || 'unknown';
} catch { return 'unknown'; }
};
console.log('START polling 6 review tasks:', new Date().toLocaleTimeString('zh-CN'));
(async () => {
const started = Date.now();
while (Date.now() - started < 60 * 60 * 1000) {
let allDone = true;
for (const t of TASKS) {
const s = await status(t.id);
state[t.rw] = s;
if (s !== 'done' && s !== 'error') allDone = false;
}
console.log(new Date().toLocaleTimeString('zh-CN'), '|',
TASKS.map((t) => 'rw' + t.rw + ':' + state[t.rw]).join(' '));
if (allDone) {
const errs = TASKS.filter((t) => state[t.rw] === 'error');
console.log(errs.length ? 'ALL DONE (with errors): ' + errs.map((t) => 'rw' + t.rw).join(',') : 'ALL DONE ✓');
process.exit(0);
}
await new Promise((r) => setTimeout(r, 30000));
}
console.log('TIMEOUT after 60min, last states:', JSON.stringify(state));
process.exit(1);
})();