Pipeline队列
更新时间:2023-04-18
队列分为免费型与专享型:
- 免费型队列中的转码任务分享百度智能云为音视频转码所提供的约400路720P转码计算资源。
- 专享型队列需额外采购,以便更好的满足那些对于转码时效性和稳定性有更高要求的用户的业务需求。
用户可以利用队列实现任务优先级。用户通过创建多个队列达到区分任务优先级的目的,将大部分任务创建至普通优先级队列,将高优的任务放入高优先级的队列,以利用队列先到先服务的工作原理来实现任务的优先级调整。
新建Pipeline
如下代码可以新建一个Pipeline。
pipelineName := "test"
sourceBucket := "testBucket"
targetBucket := "targetBucket"
capacity := 10
err := MEDIA_CLIENT.CreatePipeline(pipelineName, sourceBucket, targetBucket, capacity)
if err != nil {
fmt.Printf("create Pipeline error: %+v\n", err)
return
}
fmt.Println("create pipeline success")
列出全部pipeline
如下代码可以列出用户所有的pipeline
pipelines, err := MEDIA_CLIENT.ListPipelines()
if err != nil {
fmt.Printf("list Pipeline error: %+v\n", err)
return
}
fmt.Println("list pipeline success\n")
for _, pipeline := range pipelines.Pipelines {
fmt.Printf("pipeline: %+v\n", pipeline)
}
查询指定pipeline
如下代码可以按照pipelineName查询pipeline。
pipelineName := "test"
pipeline, err := MEDIA_CLIENT.GetPipeline(pipelineName)
if err != nil {
fmt.Printf("list Pipeline error: %+v\n", err)
return
}
fmt.Println("get pipeline success")
fmt.Printf("pipeline: %+v\n", pipeline)
删除pipeline
如下代码可以按照pipelineName删除pipeline。
pipelineName := "test"
err := MEDIA_CLIENT.DeletePipeline(pipelineName)
if err != nil {
fmt.Printf("delete Pipeline error: %+v\n", err)
return
}
fmt.Println("delete pipeline success")
需要注意的是,如果Pipeline有关联的Job未完成,则Pipeline无法被删除,必须等Job执行结束后才能成功删除。
更新指定的Pipeline
如下代码可以对指定的pipeline进行更新。
pipelineName := "test"
args, _ := MEDIA_CLIENT.GetPipelineUpdate(pipelineName)
args.Description = "update"
args.TargetBucket = "vwdemo"
args.SourceBucket = "vwdemo"
config := &api.UpdatePipelineConfig{}
config.Capacity = 2
config.Notification = "zz"
args.UpdatePipelineConfig = config
err := MEDIA_CLIENT.UpdatePipeline(pipelineName, args)
if err != nil {
fmt.Printf("update Pipeline error: %+v\n", err)
return
}
fmt.Println("update pipeline success")