7
0

封装res-proc项目新增任务接口

This commit is contained in:
huangqz 2026-02-03 20:33:54 +08:00
parent 6f5e1aa47c
commit 1744de3d86
3 changed files with 144 additions and 0 deletions

View File

@ -0,0 +1,30 @@
package mkt2
import (
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
)
const (
VERSION = "2026-02-03"
)
var HOST = requests.Host{
Default: "res-proc",
}
type Client struct {
sdk.Client
}
func NewClient() (client *Client, err error) {
client = new(Client)
err = client.Init()
return
}
func (c *Client) AddTask(request *AddTaskRequest) (response *AddTaskResponse, err error) {
response = CreateAddTaskResponse()
err = c.DoAction(request, response)
return
}

View File

@ -0,0 +1,31 @@
package mkt2
import (
"fmt"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/utils/random"
"testing"
)
// TestAddResourceToVdbTask 添加素材上传向量库逻辑
func TestAddResourceToVdbTask(t *testing.T) {
client, err := NewClient()
if err != nil {
t.Error("NewClient error:", err)
return
}
request := CreateResourceToVdbTaskRequest(ResourceToVdbTaskParam{
MaxRetry: 0,
TraceId: random.StrRandom(10),
Payload: ResourceToVdbPayload{
ResourceURL: "https://resouce-mkt.gaore.com/material/video/2021-09/01/2124474664246343/6eb5621f8ff2de8f64d4aefa3db4f551.mp4",
MD5: "",
},
})
response, err := client.AddTask(request)
if err != nil {
t.Error("MaterialTaskNotify error:", err)
return
}
t.Log("response:", response)
fmt.Println("")
}

83
services/res-proc/task.go Normal file
View File

@ -0,0 +1,83 @@
package mkt2
import (
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
"golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
)
type AddTaskRequest struct {
*requests.JsonRequest
TaskType string `position:"Json" field:"task_type"`
MaxRetry int64 `position:"Json" field:"max_retry"`
TraceId string `position:"Json" field:"trace_id"`
Payload any `position:"Json" field:"payload"`
Extra any `position:"Json" field:"extra"`
}
type AddTaskResponseData struct {
TaskId int64 `json:"task_id"`
}
type AddTaskResponse struct {
*responses.BaseResponse
Data AddTaskResponseData `json:"data"`
Code int `json:"code"`
Msg string `json:"msg"`
Err string `json:"err"`
TraceId string `json:"trace_id"`
}
type AddTaskParam struct {
TaskType string `position:"Json" field:"task_type"`
MaxRetry int64 `position:"Json" field:"max_retry"`
TraceId string `position:"Json" field:"trace_id"`
Payload any `position:"Json" field:"payload"`
Extra any `position:"Json" field:"extra"`
}
func CreateAddTaskRequest(param AddTaskParam) (req *AddTaskRequest) {
req = &AddTaskRequest{
JsonRequest: &requests.JsonRequest{},
TaskType: param.TaskType,
MaxRetry: param.MaxRetry,
TraceId: param.TraceId,
Payload: param.Payload,
Extra: param.Extra,
}
req.InitWithApiInfo(HOST, VERSION, "/api/task/add")
req.Method = requests.POST
return
}
func CreateAddTaskResponse() (response *AddTaskResponse) {
response = &AddTaskResponse{
BaseResponse: &responses.BaseResponse{},
}
return
}
// ResourceToVdbPayload
//素材上传向量库任务playLod
const TaskTypeResourceToVdb = "resource_to_vdb"
type ResourceToVdbPayload struct {
ResourceURL string `json:"resource_url"` // 资源 URL
MD5 string `json:"md5"` // 资源 MD5
}
type ResourceToVdbTaskParam struct {
MaxRetry int64
TraceId string
Payload ResourceToVdbPayload
Extra map[string]any
}
func CreateResourceToVdbTaskRequest(param ResourceToVdbTaskParam) (req *AddTaskRequest) {
return CreateAddTaskRequest(AddTaskParam{
TaskType: TaskTypeResourceToVdb,
MaxRetry: param.MaxRetry,
TraceId: param.TraceId,
Payload: param.Payload,
Extra: param.Extra,
})
}