wenyi文译Web工作进程故障恢复指南:中断任务如何自动标记与续跑,进度永不丢失

发布时间:2026/10/1 13:21:53

wenyi文译Web工作进程故障恢复指南:中断任务如何自动标记与续跑,进度永不丢失 wenyi文译Web工作进程故障恢复指南中断任务如何自动标记与续跑进度永不丢失【免费下载链接】wenyi将被语言阻隔的作品带到读者的语言中。Bringing literature into your language.项目地址: https://gitcode.com/gh_mirrors/we/wenyiwenyi文译是一个开源的长文本翻译 Web 引擎能把被语言阻隔的书籍、字幕等作品带到读者的语言中。整本书的翻译动辄运行数小时网络波动、服务重启都可能导致后台工作进程意外停止。本文将完整讲解 wenyi 的故障恢复机制中断任务如何被自动标记、已完成的进度为何永不丢失以及如何一键续跑从断点继续帮助新手安心运行长时间翻译任务。一、为什么长任务会中断中断后会发生什么wenyi 的 Web 端采用API 后台工作进程的架构前端发起翻译后真正的解析、翻译、审校、导出工作都交给独立的后台工作进程基于 Redis 队列异步执行工作流与导出各用一条队列。长任务运行期间可能遇到这些情况服务器重启、进程被杀kill、OOM 等队列服务Redis短暂不可用任务卡在队列里无人执行工作进程崩溃但数据库里的任务状态还停留在运行中。如果什么都不做界面会永远显示翻译中进度和已花费的 Token 全部变成一笔糊涂账。wenyi 的做法是让状态可信、让进度落盘、让续跑一键可达。如上图所示wenyi 的翻译总览页会记录每一次运行的时长与状态完成、失败、暂停这是理解故障恢复的直观入口每次中断和续跑都会在这里留下可追溯的痕迹。二、自动标记每 30 秒巡检一次的中断检测核心逻辑位于 recovery.py。工作进程启动时会拉起一个恢复循环见 workers/__init__.py它独立于业务任务运行每 30 秒做一次巡检找出疑似中断的任务扫描数据库中状态为排队中/运行中、且超过 2 分钟没有任何更新的任务。2 分钟的宽限期是为了避免误伤刚从数据库写入、还没进队列的正常任务。用会话锁确认进程已死每个项目的工作进程执行期间都持有 PostgreSQL 的会话锁。锁还在 → 进程大概率还活着跳过锁拿不到 → 说明原工作进程已经不存在即使 Redis 里还残留着进行中的标记也判定为中断。区分任务类型打上正确的状态翻译/审校等工作流任务→ 标记为interrupted已中断项目状态置为paused已暂停并写入task_interrupted事件日志导出任务→ 标记为error错误提示导出未完成请新建导出重试因为渲染结果没有断点价值。这套时间戳 会话锁的双重判断非常关键它既不会把还在跑的任务误判为死任务也不会让死任务永远挂在运行中。 为什么是 2 分钟宽限期因为任务从写入数据库到真正入队中间存在正常的间隔。短于这个时间就巡检可能误判长太多则状态失真的时间过长。三、进度为何永不丢失章节级断点与原子写入自动标记只是止血真正的底气来自进度从落盘那一刻起就是完整的。wenyi 的核心运行状态由 runstore.py 管理每本书拥有独立的状态目录文件作用中断保护manifest.json章节清单与每章完成状态原子写入中断不会留下半截文件chapters/ch{n}.json每章已翻译的原文与译文逐章落盘翻译完一章存一章usage.json累计 Token 用量用量先写入暂存账本续跑时自动补记events.jsonl追加式事件日志只增不改完整记录每次运行三个设计让永不丢失成立章节粒度断点每完成一章就原子更新manifest.json先写临时文件再原子替换见 _write_json进程即使瞬间被杀磁盘上也只有完整的上一章或完整的下一章没有中间态。原文指纹校验初始化时记录源文件的 SHA-256source_sha256续跑前会校验文件没被改动防止拿着旧进度翻译新文件。配置快照随任务持久化任务入队时会把当时的完整配置快照存入任务参数见 job_service.py续跑复用快照而不是读取可能被改过的当前配置保证续的就是原来那一段。四、一键续跑从断点继续的完整链路当项目状态为paused、error或interrupted时界面上会提供续跑操作。它对应 projects.py 的/resume接口链路清晰通过 latest_resumable_job 找到该项目最近一次可续跑的任务状态为暂停/错误/中断的最新工作流任务带着原始任务参数含配置快照重新入队新工作进程启动后从manifest.json读取已完成章节跳过所有已翻译章节直接从第一个未完成的章节继续Token 用量在usage.json上累加不会重复计费。此外还有两道防串线保险旧任务投递不可覆盖新工作如果 Redis 里残留着旧任务的投递执行前会先核对当前最新任务是否还是自己见 tasks.py不是则直接丢弃避免幽灵任务覆盖你的新进度。暂停是在安全边界停下手动暂停不会硬杀进程而是在章节边界优雅收尾并落盘见 PauseRequested所以暂停与崩溃后的恢复路径完全一致。上图的人工校阅页显示已保存 5/5 段——这正是章节级断点的另一面无论自动翻译进行到哪里已落盘的内容都稳定可查续跑时也不会重复翻译已完成部分。五、给普通用户的实用建议中断后不要急着新建项目先点续跑。除非源文件本身发生了变更指纹校验会拒绝不一致的源否则新建项目会丢失全部已完成的章节进度。导出中断需重新发起导出没有断点概念标记为错误后新建一次导出即可不会消耗模型费用。关注事件日志每次task_interrupted、task_paused、task_completed都会写入追加式事件日志events.jsonl需要排查到底断在哪一步时它是第一手证据。部署时把 API、工作进程、数据库分开重启恢复循环运行在工作进程中只要工作进程能重新拉起它会自动完成对历史中断任务的标记无需人工干预。小结wenyi 的故障恢复体系由三块拼图构成30 秒一次的自动巡检负责把死掉的任务从运行中诚实地改标为已中断章节级原子落盘 原文指纹 配置快照负责让进度在任何时刻都是完整、可信的一键续跑负责从断点继续不重复劳动、不重复计费。对使用者来说它把长任务怕中断的焦虑变成了一次无感的继续。更多架构细节可参考项目文档docs/zh/architecture.md、docs/zh/pipeline.md核心源码位于 apps/api/wenyi_api/workers/ 与 packages/core/wenyi_core/pipeline/。【免费下载链接】wenyi将被语言阻隔的作品带到读者的语言中。Bringing literature into your language.项目地址: https://gitcode.com/gh_mirrors/we/wenyi创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/1 13:21:53

AI智能体接入Office套件:从架构设计到落地实践

我每天的工作时间里,有三分之一是泡在Office里的:写方案、改报告、整理数据、做PPT。真正让人疲倦的并不是创作本身,而是大量“有手就行但特别费时间”的活——把会议纪要整理成带格式的文档、从导出的数据表里抽出一段说得出口的分析、把十页…

2026/10/1 13:21:53

Agent训练场解密:一天300万沙箱如何防AI作弊

最近Agent开发者圈子里,DeepSeek公开Agent训练场的消息被反复转发。大家讨论最多的不是模型又刷了多少分,而是其中一句话:一天要跑300万个沙箱,还要防AI作弊。这个数字初看像PR话术,仔细想想就知道有多重——沙箱本身不…

2026/10/1 13:16:52

Unity AssetBundle热更新安全排查:从CDN清单到本地缓存链路全解

做Unity客户端开发的朋友,大概率都碰过这么一档子事:线上包发出去,CDN也传好了,结果用户那边一进游戏就卡在加载界面,或者明明提示更新成功,加载的还是老资源。我最近手头一个项目就碰到了类似问题&#xf…

2026/10/1 17:12:07

多任务YOLOv8实战:检测、可行驶区域与车道线分割一网打尽

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 17:12:07

稀土为什么能够改变材料性能?从4f电子到催化成炭

在钢铁中加入少量稀土,可以改善韧性;在铝合金中加入稀土,可以细化晶粒;在永磁材料中加入镝、铽,可以提升高温稳定性。稀土用量通常很少,却能显著改变材料性能,原因要从它的电子结构说起。4f电子…

2026/10/1 17:12:07

发个朋友圈还要定闹钟?微信定时发圈一次说清

先说清楚:微信本身没有定时发圈这个功能。所以不想再定闹钟、设置消息提醒自己该发朋友圈了,定时发圈就是最优解。定时发圈要解决的就是两件事:把“记住要发”和“到点去发”,全交给系统。你花十分钟,把今天要发的内容…

2026/10/1 17:12:07

无限大核心玩法是什么 无限大核心玩法介绍

不少玩家在预约无限大之后,最关心的问题就是无限大核心玩法到底是什么。简单来说,无限大核心玩法围绕“都市开放世界多角色切换载具驾驶”三大支柱展开,既有高楼摆荡的立体移动,也有追车射击的公路战。为了在电脑上体验这种高自由…

2026/10/1 17:07:07

Symfony Console 命令 Markdown 描述与多字节字符支持深度解析

后端Web框架 【免费下载链接】symfony The Symfony PHP framework 项目地址: https://gitcode.com/GitHub_Trending/sy/symfony 点击查看 免费下载 文章导读 本文聚焦 Symfony Console 组件中命令描述符(Descriptor)的 Markdown 输出格式&a…

2026/10/1 5:21:14

东莞市品牌网站建设报价常见报错与解决

东莞品牌网站建设报价单背后:一份保姆级建站教程避坑实录 网站做好了没人访问,这大概是很多老板最头疼的事。花了大几万做的品牌站,上线后流量惨淡,比路边摊还冷清。别急着骂外包公司,很多“东莞品牌网站建设报价”里藏着不少猫腻,比如用模板站冒充定制…

2026/10/1 17:09:46

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/10/1 10:48:55

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑