👤 用户需求
对 music-worker 定时任务进行改名升级,升级为 long-task-worker, 同时支持音乐生成和视频生成两种长时间运行的 MiniMax API 任务。 相应的每小时系统定时检查任务对应的进程名称也进行同步更新。
🤖 DeepSeek 方案 + Hermes Agent

一、变更清单

本地文件(本机服务器)

文件 操作 说明
/etc/cron.d/music-worker🗑️ 删除旧系统 crontab 配置
/etc/cron.d/long-task-worker✅ 创建同名 schedule,脚本路径改为新名
/root/scripts/music-cron-worker.sh🗑️ 删除旧脚本(仅处理音乐)
/root/scripts/long-task-cron-worker.sh✅ 创建118行 — 同时支持音乐+视频任务
/root/.hermes/scripts/music-worker-check.sh🗑️ 删除旧健康检查脚本
/root/.hermes/scripts/long-task-worker-check.sh✅ 创建grep 模式更新为 long-task-cron-worker

Hermes Cron

项目
Job namemusic-worker-healthchecklong-task-worker-healthcheck
脚本music-worker-check.shlong-task-worker-check.sh
定时每小时整点✅ 不变

香港站远程文件

文件改动
proxy.php① 任务目录统一为 /vhost/tmp/long_tasks/(替换 6 处)
② 新增 /video_submit — 视频异步提交
③ 新增 /video_pending — 视频待处理列表
④ 新增 /video_read_params — 视频参数读取
⑤ 新增 /video_write_result — 视频结果回写
⑥ 新增 /video_poll — 前端轮询视频结果
/music_pending 智能区分音乐/视频任务
⑧ 旧 serialize 格式向后兼容
ui2.htmlvideo_generation handler 重构为异步提交+轮询模式(类似音乐处理)

二、架构变化

以前:music-worker(只处理音乐)
script → /music_pending
         → /music_read_params
         → MiniMax /music_generation
         → /music_write_result
现在:long-task-worker(处理音乐+视频)
script → 先查 /music_pending
         → 再查 /video_pending
         → 根据 api_path 区分类型
         → MiniMax 对应 API(/music_generation 或 /video_generation)
         → /music_write_result 或 /video_write_result

任务参数存储格式已升级为 JSON(含 api_path 字段),新任务自动区分类型。 旧 serialize 格式的任务自动回退为音乐类型,零中断迁移。

三、接口规范

新增端点

端点方法说明
/video_submitPOST视频生成异步提交,返回 task_id
/video_pendingPOST列出待处理视频任务 ID
/video_read_paramsPOST读取指定视频任务参数
/video_write_resultPOST写入视频任务结果
/video_pollPOST前端轮询视频生成结果

统一任务目录

所有音乐和视频任务统一存储在 /vhost/tmp/long_tasks/ 目录下。 .params 文件为 JSON 格式,包含 api_pathinput 字段;.result 文件为 API 返回的完整 JSON。 任务提交后立即返回 task_id(约 0.2s),后台 cron worker 在整机服务器上直接调用 MiniMax API(无 PHP-FPM 超时限制)。

四、验证结果

检查项状态详情
cron 配置新文件 /etc/cron.d/long-task-worker 生效,旧文件已删除
cron 脚本新脚本已执行权限,支持音乐+视频任务调度
健康检查新脚本 long-task-worker-check.sh,Hermes cron 已更新
/video_submit返回 {"task_id":"4a169f029a756293","status":"processing"}
/video_pending正确返回视频任务,不混入音乐任务
/music_pending正确返回音乐任务,不混入视频任务
ui2.htmlvideo_generation 已使用 /video_submit + /video_poll
测试清理测试任务已回写清理,目录无残留