任务详情
T-20260930-0812 · 周然 U-10240 · 夜读模板 · 竖屏。一条任务从入队到结束的每一步都在这一页上,包括它卡在哪一步。
这一页在原型里把两种状态并排放在一起,方便对着看差异:真实实现里一条 URL(/admin/tasks/:id)只对应一个任务,状态由服务端给,页面按状态决定按钮渲不渲染——前端不猜阶段,一猜就会出现文案和实际行为不符。
这个任务合成阶段已持续 18 分钟,超过「排队超时时间」配置的 15 分钟,却没有任何推进回调。队列堵死、第三方回调丢失这类情况,系统自己不会自愈——要人兜底。
任务状态
生成中预扣中 10 积分进度由 阶段 + 阶段内进度 共同给出,不编一个假的百分比。合成阶段正常在 2 分钟内完成,这一条已经跑到 18 分钟。
任务号T-20260930-0812
所属用户周然 · U-10240
模板与画幅夜读 · 竖屏 1080×1920
音色周然的声音(已复刻)
预扣积分10 分 · 预扣中(未结算)
创建来源C6 生成任务
render_targetcloud(本期恒为 cloud,桌面端预留字段)
时间线
入队 / 开始 / 阶段 / 结束入队
任务创建并预扣 10 积分——hold 与建任务同一事务,不会出现「扣了分没建任务」
09:12:04
出队开始
等待 1 分 16 秒后调度;企业级用户优先出队
09:13:20
配音完成
TTS 首次调用超时 8 秒,自动重试一次后成功
09:15:02
合成中
画面合成 + 字幕烧录,已持续 18 分钟,无推进回调
09:15:03 起
结束
等回调;超过阈值仍无回调则置 timeout 并释放预扣
未发生
错误与日志
已脱敏日志只落状态码、阶段名与耗时。不回显用户的选题、文案、分镜与成片内容——排查故障不需要看内容,要看内容得走 C4 内容查看申请。
09:15:07TTS 首次调用超时(8s),已自动重试一次并成功警告
09:15:03进入合成阶段,未再收到阶段推进心跳警告
09:13:20出队开始:worker-cn-07信息
09:12:04任务创建成功,预扣 10 积分(hold)信息
处置
危险操作终止动的是任务状态,释放预扣动的是积分,两件事别混:任务真卡死了,终止对、退回也对;任务其实在跑,释放预扣就是白送积分。后台不允许出现「只改状态不处理积分」的操作,所以终止这一步必须显式交代积分怎么办。
两个动作都写审计:操作人、时间、对象、动作、变更前后值、原因、IP。手动释放预扣是无痕改用户余额的唯一入口,也是唯一必须把原因填全的地方。
周然 · U-10240
标准会员 · 队列优先级:普通
正常
从这一页点到用户详情,返回时要回到这条任务(04C 第 502 行)。生成任务的排查路径几乎都是「先看任务、再看人」。
变动类型生成成片
金额-10 积分
明细状态预扣中
发生时间09:12:04
「扣了但没出片」是用户投诉最多的一类,所以积分和任务必须能互相跳(04C 第 503 行)。
关联成片
这个任务还没有成片
成片只给文件名、时长、大小与状态——后台零 video、零 audio,管理员既不能播放也不能下载用户的声音模型。
任务超过阈值仍无回调 → 置 timeout,系统自动释放预扣并通知用户重试。下面这条就是已经结束的任务:操作面比进行中的窄一圈——「终止」按钮不渲染,已结束的任务只保留「查看成片元数据」与「重试」(04C 第 463 行)。
任务状态
已超时预扣已退回超时不是失败的一种「更严重的版本」,它是系统没等到回调。对用户来说结果一样:没交付,所以不算扣。
任务号T-20260930-0811
所属用户郑执 · U-10238
结束原因排队等待超过阈值 15 分钟,无调度回调
预扣积分10 分 · 已退回可用余额
总耗时从入队到结束 12 分 41 秒
用户可见文案「生成失败,积分已退回,可直接重试」
时间线
已结束入队
任务创建并预扣 10 积分(hold)
08:52:14
出队开始
等待 3 分 02 秒后调度
08:55:16
配音完成
TTS 正常,用时 41 秒
08:56:02
超时结束
超过阈值仍无回调 → 置 timeout,自动释放预扣,并给用户发站内通知
09:04:55
错误与日志
已脱敏失败码是给排查用的,不给用户看。用户看到的永远是「生成失败,积分已退回,可直接重试」。
09:04:55fail_code = TIMEOUT_QUEUE_EXCEEDED · 阶段 = 合成 · 已等待 12 分 41 秒(阈值 15 分钟按入队计时)错误
09:04:55积分释放:预扣中 10 分 → 可用余额(release)信息
08:56:03进入合成阶段:worker-cn-03信息
08:52:14任务创建成功,预扣 10 积分(hold)信息
可做的操作
已结束任务三个按钮在这里的渲染规则,正是这一页要验证的东西:「终止」不渲染(任务已经结束了,终止谁);「手动释放预扣」不渲染(系统已经自动退回了,再点一次就是重复退回);只留一个「重试」,它新建任务、重新预扣,原记录不动。
手动释放预扣只在一种情况下出现:任务还挂在队列里、回调丢了、系统还没判超时,但人已经确认渲染进程没了。那是兜底,不是常规手段。
郑执 · U-10238
标准会员 · 近 7 天失败 2 次
正常
同一个人 7 天内失败两次,这一栏要能让人一眼看到——反复失败常常不是任务的问题,是素材或网络的问题。
变动类型生成失败积分已退回
金额+10 积分
明细状态已退回
发生时间09:04:55
这不是退款,是这笔交易根本没发生。充值不退现金、不满意不退积分,和这一条是两回事,页面文案上也不能混。
关联成片
没有成片
超时任务不产出文件。作品留存 7 天,清理只删文件、不删记录行。
这一页最容易被做错的地方,是把「终止」和「释放预扣」写成一个按钮。它们动的是两个东西:终止改任务状态,释放改积分。PRD 第 981 行说后台不能出现「只改状态不处理积分」的操作,落在这页就是——点终止时,弹层必须让人明确选「退还是不退」,并把原因填全,然后写审计。