feat(media): 上传与改片自动入队转码并支持手动重转
This commit is contained in:
1 parent
7e6075a2e9
commit
4219186ab0
6 files changed
+169
No files matched your search
@@ -25256,3 +25256,61 @@ $ mvn -pl fruitshorts-admin-api -am \
|
||||
|
||||
解读:控制器测试已经先于实现落地,现有上传/分集链路未被破坏。
|
||||
|
||||
### 实现
|
||||
|
||||
- `TranscodeService.trigger(mediaAssetId, sourceUrl)`:
|
||||
- QUEUED / RUNNING:直接返回当前任务;
|
||||
- FAILED / CANCELED:原任务重置为 QUEUED,清空进度、重试次数与错误;
|
||||
- SUCCESS:复制原任务的 drama/episode 绑定,新建一轮 QUEUED;
|
||||
- 同一次手动重转产生的 QUEUED 会被下一次请求直接复用。
|
||||
- `MediaService.triggerTranscode` 在事务内以 `SELECT ... FOR UPDATE` 锁定媒体行,
|
||||
保证同一媒体的并发请求串行;媒体不存在返回 `DATA_NOT_FOUND`,图片拒绝转码。
|
||||
- 新增 `POST /admin/media/{id}/transcode`,权限沿用 `episode:upload`,
|
||||
写操作受 `ImpersonationGuard` 保护,并记录 `触发媒资转码` 操作日志。
|
||||
- worker 既有认领、ffmpeg、HLS/缩略图产物、媒资与分集回填逻辑未改;
|
||||
失败任务仍由 worker 写入 `FAILED + error_msg`。
|
||||
|
||||
### 定向测试
|
||||
|
||||
```text
|
||||
$ mvn -pl fruitshorts-transcode-worker -am \
|
||||
-Dtest=MediaServiceTranscodePipelineTest,TranscodeServiceTriggerTest \
|
||||
-Dsurefire.failIfNoSpecifiedTests=false test
|
||||
[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0
|
||||
[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0
|
||||
[INFO] BUILD SUCCESS
|
||||
|
||||
$ mvn -pl fruitshorts-admin-api -am \
|
||||
-Dtest=MediaTranscodeTriggerContractTest \
|
||||
-Dsurefire.failIfNoSpecifiedTests=false test
|
||||
[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0
|
||||
[INFO] BUILD SUCCESS
|
||||
```
|
||||
|
||||
解读:上传完成自动入队、图片不入队、SUCCESS 重转只新建一次、
|
||||
QUEUED 重复触发复用、FAILED 原地重置、最终失败原因保留、
|
||||
媒资不存在错误语义与手动接口返回结构均通过。
|
||||
|
||||
### 最终门禁
|
||||
|
||||
```text
|
||||
$ mvn -pl fruitshorts-module-media,fruitshorts-transcode-worker test
|
||||
[INFO] Tests run: 32, Failures: 0, Errors: 0, Skipped: 0
|
||||
[INFO] fruitshorts-module-media ........................... SUCCESS
|
||||
[INFO] fruitshorts-transcode-worker ....................... SUCCESS
|
||||
[INFO] BUILD SUCCESS
|
||||
```
|
||||
|
||||
补充跑 admin-api 与依赖模块全量测试:
|
||||
|
||||
```text
|
||||
$ mvn -pl fruitshorts-admin-api -am test
|
||||
[INFO] Tests run: 43, Failures: 0, Errors: 0, Skipped: 0
|
||||
[INFO] fruitshorts-admin-api .............................. SUCCESS
|
||||
[INFO] BUILD SUCCESS
|
||||
```
|
||||
|
||||
解读:指定门禁含真实 ffmpeg smoke,worker 在本机成功生成 HLS 与缩略图;
|
||||
后台控制器改动连同既有 admin 契约、权限、服务测试全部通过。
|
||||
未启停服务、未执行数据库迁移、未操作真机。
|
||||
|
||||
Reference in new issue
Block a user