批量生图跑到一半挂了怎么办?给 nano-banana2 的生图API 任务加断点续跑
批量出图最怕的场景一千张跑到第七百张进程挂了。重跑一遍不仅浪费两个小时 前面七百张的积分也白花了。这篇讲在该服务上给批量生图任务加断点续跑挂了能接着跑。一、核心任务状态要落盘不能只在内存内存里的results数组进程一死就没了。每完成一条就写一次const fs require(fs); // 用 JSONL一行一条追加写进程崩了也不会毁掉整个文件 // JSON 数组写到一半崩了文件就是坏的解析不出来 function appendDone(file, rec) { fs.appendFileSync(file, JSON.stringify(rec) \n); } function loadDone(file) { if (!fs.existsSync(file)) return new Set(); return new Set( fs.readFileSync(file, utf8).split(\n).filter(Boolean) .map((l) { try { return JSON.parse(l).key; } catch { return null; } }) .filter(Boolean) ); }用 JSONL 不用 JSON 数组——追加写是原子的崩在半路最多损失最后一行 而 JSON 数组写到一半崩了整个文件都解析不出来。二、每条任务要有稳定的 key续跑靠 key 判断这条做过没有。key 必须由输入决定不能用随机数或时间戳const crypto require(crypto); const keyOf (item) crypto.createHash(md5) .update(item.sku | item.prompt | item.model).digest(hex).slice(0, 12);把model也放进 key换了模型就该重跑不然续跑时会把旧模型的结果当成已完成。三、完整的续跑实现async function runBatch(items, { workers 16, doneFile done.jsonl } {}) { const done loadDone(doneFile); const todo items.filter((it) !done.has(keyOf(it))); console.log(总共 ${items.length} 条已完成 ${done.size}本次要跑 ${todo.length}); if (!todo.length) return; let next 0, ok 0, fail 0; await Promise.all(Array.from({ length: workers }, async () { while (next todo.length) { const it todo[next]; const key keyOf(it); try { const r await fetch(https://API_HOST/v1/chat/completions, { method: POST, headers: { Authorization: Bearer ${process.env.TTQ_API_KEY}, Content-Type: application/json, }, body: JSON.stringify({ model: it.model, messages: [{ role: user, content: it.prompt }] }), signal: AbortSignal.timeout(120_000), }); if (!r.ok) throw new Error(HTTP r.status); const data await r.json(); appendDone(doneFile, { key, sku: it.sku, model: it.model, data, at: Date.now() }); ok; } catch (e) { // 失败的不写 done 文件 —— 下次续跑会自动重试它 fail; console.warn(失败, it.sku, e.message); } if ((ok fail) % 50 0) console.log(进度 ${ok fail}/${todo.length} 成功 ${ok} 失败 ${fail}); } })); console.log(本轮完成成功 ${ok}失败 ${fail}); }失败的不写 done 文件这样下次直接跑就是在重试失败的那些不用另写重试逻辑。 反复跑几次直到本次要跑 0为止。四、几个容易忽略的点进度要打印。跑两个小时一行日志没有没人知道是在跑还是卡死了。每 50 条打一次刚好。别把图片二进制写进 done 文件。只存 URL 或落地后的路径 否则 JSONL 文件几个 G加载done集合就要等半天。中断要能优雅退出let stopping false; process.on(SIGINT, () { stopping true; console.log(收到中断跑完手上的就停...); }); // 循环里if (stopping) break;直接 CtrlC 强杀正在飞的请求积分已经扣了但结果没落盘白花钱。五、模型与消耗模型代码定位消耗nano-banana2跑量首选最快最便宜8 积分/次nano-banana-pro终稿支持 1K/2K/4K10 积分/次gpt-image-2细节质感按次计费Veo 3.1 视频生成/Sora 2生视频120 / 130 积分/次跑量务必用nano-banana2——同样一千张比 Pro 级省两千积分挑中的再用 Pro 重出。六、小结断点续跑四条状态落盘用 JSONL 不用 JSON 数组、key 由输入内容决定、失败的不记账下次自动重试、中断要优雅退出别浪费在途请求。该服务并发高跑量任务才有意义模型全nano banana pro、gpt-image-2、Veo 3.1、Sora 2、价格便宜、出图快、稳定。接口服务甜甜圈APIdashengfenshen.cn

相关新闻

如何让网站建设更高效?深度解析站内搜索在品牌官网中的核心价值与落地指南

如何让网站建设更高效?深度解析站内搜索在品牌官网中的核心价值与落地指南

最近有很多做企业官网的朋友来找我聊天,话题往往都绕不开一个老生常谈的问题:为什么我花了大价钱搞网站建设,请了最好的设计团队,用了最流行的前端技术,结果网站打开速度飞快,页面酷炫无比,但客户访问之后,要么看两眼就走了,要么卡在某个页面找不到想要的产品,最后只…

2026/10/27 8:07:41 阅读更多 →
Topit终极指南:3步掌握Mac窗口置顶,多任务效率翻倍!

Topit终极指南:3步掌握Mac窗口置顶,多任务效率翻倍!

Topit终极指南:3步掌握Mac窗口置顶,多任务效率翻倍! 【免费下载链接】Topit Pin any window to the top of your screen / 在Mac上将你的任何窗口强制置顶 项目地址: https://gitcode.com/gh_mirrors/to/Topit 你是否经常在写代码时&a…

2026/10/31 7:43:22 阅读更多 →
如何用Winhance中文版免费优化Windows系统:从卡顿到流畅的完整指南

如何用Winhance中文版免费优化Windows系统:从卡顿到流畅的完整指南

如何用Winhance中文版免费优化Windows系统:从卡顿到流畅的完整指南 【免费下载链接】Winhance-zh_CN A Chinese version of Winhance. C# application designed to optimize and customize your Windows experience. 项目地址: https://gitcode.com/gh_mirrors/wi…

2026/10/25 3:48:33 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/1 0:24:43 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/31 10:20:19 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/31 10:20:23 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/1 1:06:58 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/31 10:30:19 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/31 9:29:43 阅读更多 →

日新闻

周新闻

月新闻