以下代码如何修改为流水线形式 即 视频1 在进行第二步操作时 视频2 进入或等待进入第一步操作;视频1 进入第三步操作时 视频2 进入或等待进入第二步操作
前提条件:第一步下载后需要传递文件名以供其他步骤使用,需要限制不会存在处于同一步骤的两个视频(比如两个视频同时在生成字幕 cpu顶不住就会开始降频 得不偿失)
以此类推
package main
import "fmt"
func main() {
videos := []string{
"视频0",
"视频1",
"视频2",
"视频3",
"视频4",
"视频5",
"视频6",
"视频7",
"视频8",
"视频9",
"视频10",
"视频11",
"视频12",
"视频13",
"视频14",
"视频15"}
for _,v:=range videos{
uuid:=step1(v)
step2(uuid)
step3(uuid)
step4(uuid)
}
}
/*
模拟下载函数
*/
func step1(s string) (uuid string) {
fmt.Println("下载视频")
return "视频的uuid"
}
/*
模拟生成字幕函数
*/
func step2(uuid string) {
fmt.Println("视频根据uuid生成字幕")
}
/*
模拟翻译字幕函数
*/
func step3(uuid string) {
fmt.Println("视频根据uuid翻译字幕")
}
/*
模拟合并视频函数
*/
func step4(uuid string) {
fmt.Println("视频根据uuid合成字幕")
}