Web Worker 通信桥
Web Worker Communication Bridge
主线程与 Worker 的异步命令/事件通信、Promise 管理与媒体注入
子问题
1.命令-事件消息协议设计
2.pendingPromises 请求-响应映射
3.Worker 生命周期管理
4.跨线程媒体数据传输
5.两阶段生成流水线的中间审核点设计
6.批量场景的并发度控制与故障隔离
7.前缀 ID 匹配的 FIFO 请求-响应配对策略
各项目的解法1 solutions
Signals
横向对比
| 维度 | moyin-creator |
|---|---|
| 通信协议 | TypeScript 联合类型 + Extract 映射,9 Command / 9 Event 双向类型安全 |
| 请求响应映射 | pendingPromises Map + 前缀 ID 匹配(ping_/screenplay_),FIFO 顺序消费 |
| 进度追踪 | 三阶段映射(image 0-45%, video 50-95%, blob 95-100%),reportSceneProgress 统一上报 |
| 并发控制 | configurable concurrency 批量 + Promise.allSettled 故障隔离 |
| Store 集成 | 动态 import 避免循环依赖,Blob→File→MediaStore→DirectorStore 注入链 |
| 生命周期管理 | WORKER_READY 信号 + readyPromise 等待 + terminate 清理 |
| 两阶段流水线 | EXECUTE_SCREENPLAY_IMAGES → 用户审核 → EXECUTE_SCREENPLAY_VIDEOS 分离 |
最佳实践
1.单例 Bridge 模式
2.ready Promise 等待 Worker 初始化
3.动态 import 避免循环依赖
4.Promise.allSettled 隔离批量任务中单个失败
5.三阶段进度百分比映射(image/video/blob)
6.SceneFailedEvent 携带 retryable 标志支持选择性重试