问题域/PD-483

异步任务轮询

Async Task Polling

对异步AI生成API的任务提交-轮询-结果获取模式,支持超时和状态追踪

子问题

1.任务提交与ID获取

2.轮询间隔与超时控制

3.任务状态转换追踪

4.结果下载与格式转换

5.多 API 后端状态字符串归一化映射

6.Web Worker 中的任务生命周期与主线程通信

7.批量场景的滑动窗口并发执行

各项目的解法1 solutions

Signals

横向对比

维度moyin-creator
轮询策略固定间隔轮询(2-3s),TaskPoller 支持动态超时扩展
并发控制TaskQueue 优先级队列 + 动态 maxConcurrency 函数注入
超时机制三级超时:默认10min / estimatedTime×2+2min / 硬上限30min
重试策略TaskQueue 内置 retryCount/maxRetries,TaskPoller 网络错误自动重试
取消机制模块级 cancelled 标志 + TaskQueue.cancelAll 批量取消
状态模型TaskItem 4态(queued/running/completed/failed)+ AsyncTaskResult 4态
Worker隔离整个 AI 流水线运行在 Web Worker 中,postMessage 通信
多后端兼容storyboard-service 状态映射表兼容 11 种 API 状态字符串

最佳实践

1.指数退避轮询减少API压力

2.任务队列管理多个并发轮询

3.Promise 内嵌 resolve/reject 实现队列到调用方的透明等待

4.动态超时基于服务端 estimatedTime 自适应扩展

5.网络错误与业务错误分类处理避免误杀长任务