任务 f2de718e1e30(参考视频文件名带中文)秒失败:h3-console 上传时的文件名清洗用了
Python 3 默认的 Unicode \w,中文被当合法字符保留,资源 URL 里带着原始中文传给
urllib.request.urlopen,http.client 构造请求行要求纯 ASCII 直接炸了。改成请求前对
URL 的 path 部分 quote 一遍。
排查时发现 raylight 重启会把所有排队中的任务直接标记 cancelled(内存队列重启即清空,
sqlite 里的 queued 记录没有任何路径被重新入队)。改成 Job 加 queue_seq、Q 换成
PriorityQueue,重启时排队任务原样保留、按序重新入队;顺带加了 POST
/v1/videos/{jid}/prioritize 插队接口和对应的 h3-console 代理 + 前端"优先插队"按钮。
另外把 8月24日提交过、但实际从未部署到服务器的 ComfyUI 存活探测(_comfyui_alive)
重新加回,并解决了 raylight/server.py 和 raylight/scripts/server.py 长期分叉的问题。
已在服务器上验证:重启后 17 条排队任务原样保留、顺序不变;插队接口直接测试和通过
console 代理都验证通过;/health 的 comfy_alive 检查确认生效。
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PA1AWh8e7wJ3vyhKBAEQux