Suno API 批量生成的任务设计
批量任务的核心不是并发数,而是「每一首都能被追踪、只扣一次费、文件能落盘」。
批量不是并发轰炸
| 阶段 | 做什么 | 约束 |
|---|---|---|
| 提交 | 一次生成请求,落库任务 ID | 限制同时在飞的数量 |
| 轮询 | 3–5 秒查状态到终态 | 一个任务一个 poller |
| 下载 | 取临时地址并转存 | 按任务 ID 幂等 |
| 对账 | 找没有终态的任务 | 重启后必须跑 |
去重
数据库里给 request_id 建唯一索引。客户端超时后先查已有任务,不要插入第二行;下载和转存也按任务 ID 幂等。这样即使 worker 重启,也不会为同一首歌付两次钱。
落盘
任务完成后立即下载,校验后上传到自己的对象存储;数据库存对象 key 和任务 ID,不存临时媒体 URL。需要再取文件时,重新取一次地址即可,不会再次计费。
常见问题 / FAQ
一次发 100 首可以吗?
先小批量看 429 比例,再按队列深度扩容;不要一次性瞬发。
失败会退费吗?
任务失败自动退费;批量任务要按任务状态逐条对账,不要整批重提。
需要几个 worker?
至少把提交、轮询、下载拆开;数量按队列深度和 429 比例调,不按“感觉”调。
申请 Key、第一个请求、接口清单与报错排查
注册只需要邮箱,一次生成 0.6 元出 2 首,MP3 与 WAV 下载不限次。
看并发与队列
注册只需要邮箱,一次生成 0.6 元出 2 首,MP3 与 WAV 下载不限次。