Skip to content

Commit 7427269

Browse files
lilangjojoliang
authored andcommitted
批量处理任务
1 parent c176883 commit 7427269

File tree

2 files changed

+292
-0
lines changed

2 files changed

+292
-0
lines changed

ci_media.go

Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -504,6 +504,8 @@ type MediaProcessJobDetail struct {
504504
Progress string `xml:"Progress,omitempty"`
505505
State string `xml:"State,omitempty"`
506506
CreationTime string `xml:"CreationTime,omitempty"`
507+
StartTime string `xml:"StartTime,omitempty"`
508+
EndTime string `xml:"EndTime,omitempty"`
507509
QueueId string `xml:"QueueId,omitempty"`
508510
Input *JobInput `xml:"Input,omitempty"`
509511
Operation *MediaProcessJobOperation `xml:"Operation,omitempty"`
@@ -2024,3 +2026,142 @@ func (s *CIService) DeleteMediaWorkflow(ctx context.Context, workflowId string)
20242026
resp, err := s.client.send(ctx, &sendOpt)
20252027
return &res, resp, err
20262028
}
2029+
2030+
// InventoryTriggerJobInput TODO
2031+
type InventoryTriggerJobInput struct {
2032+
Manifest string `xml:"Manifest,omitempty"`
2033+
UrlFile string `xml:"UrlFile,omitempty"`
2034+
Prefix string `xml:"Prefix,omitempty"`
2035+
Object string `xml:"Object,omitempty"`
2036+
}
2037+
2038+
// InventoryTriggerJobOperationTimeInterval TODO
2039+
type InventoryTriggerJobOperationTimeInterval struct {
2040+
Start string `xml:"Start,omitempty"`
2041+
End string `xml:"End,omitempty"`
2042+
}
2043+
2044+
// InventoryTriggerJobOperation TODO
2045+
type InventoryTriggerJobOperation struct {
2046+
WorkflowIds string `xml:"WorkflowIds,omitempty"`
2047+
TimeInterval InventoryTriggerJobOperationTimeInterval `xml:"TimeInterval,omitempty"`
2048+
}
2049+
2050+
// InventoryTriggerJob TODO
2051+
type InventoryTriggerJob struct {
2052+
Name string `xml:"Name,omitempty"`
2053+
Input *InventoryTriggerJobInput `xml:"Input,omitempty"`
2054+
Operation *InventoryTriggerJobOperation `xml:"Operation,omitempty"`
2055+
}
2056+
2057+
// CreateInventoryTriggerJobOptions TODO
2058+
type CreateInventoryTriggerJobOptions struct {
2059+
XMLName xml.Name `xml:"Request"`
2060+
Name string `xml:"Name,omitempty"`
2061+
Input *InventoryTriggerJobInput `xml:"Input,omitempty"`
2062+
Operation *InventoryTriggerJobOperation `xml:"Operation,omitempty"`
2063+
}
2064+
2065+
// InventoryTriggerJobDetail TODO
2066+
type InventoryTriggerJobDetail struct {
2067+
Code string `xml:"Code,omitempty"`
2068+
Message string `xml:"Message,omitempty"`
2069+
JobId string `xml:"JobId,omitempty"`
2070+
Tag string `xml:"Tag,omitempty"`
2071+
Progress string `xml:"Progress,omitempty"`
2072+
State string `xml:"State,omitempty"`
2073+
CreationTime string `xml:"CreationTime,omitempty"`
2074+
StartTime string `xml:"StartTime,omitempty"`
2075+
EndTime string `xml:"EndTime,omitempty"`
2076+
QueueId string `xml:"QueueId,omitempty"`
2077+
Input *InventoryTriggerJobInput `xml:"Input,omitempty"`
2078+
Operation *InventoryTriggerJobOperation `xml:"Operation,omitempty"`
2079+
}
2080+
2081+
// CreateInventoryTriggerJobResult TODO
2082+
type CreateInventoryTriggerJobResult struct {
2083+
XMLName xml.Name `xml:"Response"`
2084+
RequestId string `xml:"RequestId,omitempty"`
2085+
JobsDetail *InventoryTriggerJobDetail `xml:"JobsDetail,omitempty"`
2086+
}
2087+
2088+
// CreateInventoryTriggerJob TODO
2089+
func (s *CIService) CreateInventoryTriggerJob(ctx context.Context, opt *CreateInventoryTriggerJobOptions) (*CreateInventoryTriggerJobResult, *Response, error) {
2090+
var res CreateInventoryTriggerJobResult
2091+
sendOpt := sendOptions{
2092+
baseURL: s.client.BaseURL.CIURL,
2093+
uri: "/inventorytriggerjob",
2094+
method: http.MethodPost,
2095+
body: opt,
2096+
result: &res,
2097+
}
2098+
resp, err := s.client.send(ctx, &sendOpt)
2099+
return &res, resp, err
2100+
}
2101+
2102+
// DescribeInventoryTriggerJobResult TODO
2103+
type DescribeInventoryTriggerJobResult struct {
2104+
XMLName xml.Name `xml:"Response"`
2105+
RequestId string `xml:"RequestId,omitempty"`
2106+
JobsDetail *InventoryTriggerJobDetail `xml:"JobsDetail,omitempty"`
2107+
NonExistJobId string `xml:"NonExistJobId,omitempty"`
2108+
}
2109+
2110+
// DescribeInventoryTriggerJob 查询指定存量触发工作流的任务
2111+
func (s *CIService) DescribeInventoryTriggerJob(ctx context.Context, jobId string) (*DescribeInventoryTriggerJobResult, *Response, error) {
2112+
var res DescribeInventoryTriggerJobResult
2113+
sendOpt := sendOptions{
2114+
baseURL: s.client.BaseURL.CIURL,
2115+
uri: "/inventorytriggerjob/" + jobId,
2116+
method: http.MethodGet,
2117+
result: &res,
2118+
}
2119+
resp, err := s.client.send(ctx, &sendOpt)
2120+
return &res, resp, err
2121+
}
2122+
2123+
// DescribeInventoryTriggerJobsOptions TODO
2124+
type DescribeInventoryTriggerJobsOptions struct {
2125+
NextToken string `url:"nextToken,omitempty"`
2126+
Size string `url:"size,omitempty"`
2127+
OrderByTime string `url:"orderByTime,omitempty"`
2128+
States string `url:"states,omitempty"`
2129+
StartCreationTime string `url:"states,omitempty"`
2130+
EndCreationTime string `url:"endCreationTime,omitempty"`
2131+
WorkflowId string `url:"workflowId,omitempty"`
2132+
JobId string `url:"jobId,omitempty"`
2133+
Name string `url:"name,omitempty"`
2134+
}
2135+
2136+
// DescribeInventoryTriggerJobsResult TODO
2137+
type DescribeInventoryTriggerJobsResult struct {
2138+
XMLName xml.Name `xml:"Response"`
2139+
RequestId string `xml:"RequestId,omitempty"`
2140+
JobsDetail *InventoryTriggerJobDetail `xml:"JobsDetail,omitempty"`
2141+
NextToken string `xml:"NextToken,omitempty"`
2142+
}
2143+
2144+
// DescribeInventoryTriggerJobs 查询存量触发工作流的任务
2145+
func (s *CIService) DescribeInventoryTriggerJobs(ctx context.Context, opt *DescribeInventoryTriggerJobsOptions) (*DescribeInventoryTriggerJobsResult, *Response, error) {
2146+
var res DescribeInventoryTriggerJobsResult
2147+
sendOpt := sendOptions{
2148+
baseURL: s.client.BaseURL.CIURL,
2149+
uri: "/inventorytriggerjob",
2150+
optQuery: opt,
2151+
method: http.MethodGet,
2152+
result: &res,
2153+
}
2154+
resp, err := s.client.send(ctx, &sendOpt)
2155+
return &res, resp, err
2156+
}
2157+
2158+
// CancelInventoryTriggerJob TODO
2159+
func (s *CIService) CancelInventoryTriggerJob(ctx context.Context, jobId string) (*Response, error) {
2160+
sendOpt := sendOptions{
2161+
baseURL: s.client.BaseURL.CIURL,
2162+
uri: "/inventorytriggerjob/" + jobId,
2163+
method: http.MethodPut,
2164+
}
2165+
resp, err := s.client.send(ctx, &sendOpt)
2166+
return resp, err
2167+
}
Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
package main
2+
3+
import (
4+
"context"
5+
"fmt"
6+
"math/rand"
7+
"net/http"
8+
"net/url"
9+
"os"
10+
"strconv"
11+
"time"
12+
13+
"github.com/tencentyun/cos-go-sdk-v5"
14+
"github.com/tencentyun/cos-go-sdk-v5/debug"
15+
)
16+
17+
func log_status(err error) {
18+
if err == nil {
19+
return
20+
}
21+
if cos.IsNotFoundError(err) {
22+
// WARN
23+
fmt.Println("WARN: Resource is not existed")
24+
} else if e, ok := cos.IsCOSError(err); ok {
25+
fmt.Printf("ERROR: Code: %v\n", e.Code)
26+
fmt.Printf("ERROR: Message: %v\n", e.Message)
27+
fmt.Printf("ERROR: Resource: %v\n", e.Resource)
28+
fmt.Printf("ERROR: RequestId: %v\n", e.RequestID)
29+
// ERROR
30+
} else {
31+
fmt.Printf("ERROR: %v\n", err)
32+
// ERROR
33+
}
34+
}
35+
36+
// DescribeInventoryTriggerJob TODO
37+
func DescribeInventoryTriggerJob() {
38+
u, _ := url.Parse("https://lilang-1253960454.cos.ap-chongqing.myqcloud.com")
39+
cu, _ := url.Parse("https://lilang-1253960454.ci.ap-chongqing.myqcloud.com")
40+
b := &cos.BaseURL{BucketURL: u, CIURL: cu}
41+
c := cos.NewClient(b, &http.Client{
42+
Transport: &cos.AuthorizationTransport{
43+
SecretID: os.Getenv("COS_SECRETID"),
44+
SecretKey: os.Getenv("COS_SECRETKEY"),
45+
Transport: &debug.DebugRequestTransport{
46+
RequestHeader: true,
47+
// Notice when put a large file and set need the request body, might happend out of memory error.
48+
RequestBody: true,
49+
ResponseHeader: true,
50+
ResponseBody: true,
51+
},
52+
},
53+
})
54+
jobId := "babc6cfc8cd2111ecb09a52540038936c"
55+
DescribeWorkflowRes, _, err := c.CI.DescribeInventoryTriggerJob(context.Background(), jobId)
56+
log_status(err)
57+
fmt.Printf("%+v\n", DescribeWorkflowRes)
58+
}
59+
60+
// DescribeInventoryTriggerJobs TODO
61+
func DescribeInventoryTriggerJobs() {
62+
u, _ := url.Parse("https://lilang-1253960454.cos.ap-chongqing.myqcloud.com")
63+
cu, _ := url.Parse("https://lilang-1253960454.ci.ap-chongqing.myqcloud.com")
64+
b := &cos.BaseURL{BucketURL: u, CIURL: cu}
65+
c := cos.NewClient(b, &http.Client{
66+
Transport: &cos.AuthorizationTransport{
67+
SecretID: os.Getenv("COS_SECRETID"),
68+
SecretKey: os.Getenv("COS_SECRETKEY"),
69+
Transport: &debug.DebugRequestTransport{
70+
RequestHeader: true,
71+
// Notice when put a large file and set need the request body, might happend out of memory error.
72+
RequestBody: true,
73+
ResponseHeader: true,
74+
ResponseBody: true,
75+
},
76+
},
77+
})
78+
opt := &cos.DescribeInventoryTriggerJobsOptions{
79+
States: "All",
80+
}
81+
DescribeWorkflowRes, _, err := c.CI.DescribeInventoryTriggerJobs(context.Background(), opt)
82+
log_status(err)
83+
fmt.Printf("%+v\n", DescribeWorkflowRes)
84+
}
85+
86+
// CreateInventoryTriggerJob TODO
87+
func CreateInventoryTriggerJob() {
88+
u, _ := url.Parse("https://lilang-1253960454.cos.ap-chongqing.myqcloud.com")
89+
cu, _ := url.Parse("https://lilang-1253960454.ci.ap-chongqing.myqcloud.com")
90+
b := &cos.BaseURL{BucketURL: u, CIURL: cu}
91+
c := cos.NewClient(b, &http.Client{
92+
Transport: &cos.AuthorizationTransport{
93+
SecretID: os.Getenv("COS_SECRETID"),
94+
SecretKey: os.Getenv("COS_SECRETKEY"),
95+
Transport: &debug.DebugRequestTransport{
96+
RequestHeader: true,
97+
// Notice when put a large file and set need the request body, might happend out of memory error.
98+
RequestBody: true,
99+
ResponseHeader: true,
100+
ResponseBody: true,
101+
},
102+
},
103+
})
104+
rand.Seed(time.Now().UnixNano())
105+
opt := &cos.CreateInventoryTriggerJobOptions{
106+
Name: "trigger-" + strconv.Itoa(rand.Intn(100)),
107+
Input: &cos.InventoryTriggerJobInput{
108+
Manifest: "https://lilang-1253960454.cos.ap-chongqing.myqcloud.com/cos_bucket_inventory/1253960454/lilang/menu_instant_20220506171340/20220506/manifest.json",
109+
},
110+
Operation: &cos.InventoryTriggerJobOperation{
111+
WorkflowIds: "web6ac56c1ef54dbfa44d7f4103203be9",
112+
TimeInterval: cos.InventoryTriggerJobOperationTimeInterval{
113+
Start: "2002-02-16T10:45:12+0800",
114+
End: "2022-05-16T10:45:12+0800",
115+
},
116+
},
117+
}
118+
DescribeInventoryTriggerJobRes, _, err := c.CI.CreateInventoryTriggerJob(context.Background(), opt)
119+
log_status(err)
120+
fmt.Printf("%+v\n", DescribeInventoryTriggerJobRes)
121+
}
122+
123+
// CancelInventoryTriggerJobs TODO
124+
func CancelInventoryTriggerJobs() {
125+
u, _ := url.Parse("https://lilang-1253960454.cos.ap-chongqing.myqcloud.com")
126+
cu, _ := url.Parse("https://lilang-1253960454.ci.ap-chongqing.myqcloud.com")
127+
b := &cos.BaseURL{BucketURL: u, CIURL: cu}
128+
c := cos.NewClient(b, &http.Client{
129+
Transport: &cos.AuthorizationTransport{
130+
SecretID: os.Getenv("COS_SECRETID"),
131+
SecretKey: os.Getenv("COS_SECRETKEY"),
132+
Transport: &debug.DebugRequestTransport{
133+
RequestHeader: true,
134+
// Notice when put a large file and set need the request body, might happend out of memory error.
135+
RequestBody: true,
136+
ResponseHeader: true,
137+
ResponseBody: true,
138+
},
139+
},
140+
})
141+
jobId := "b56a3bbc0cd3011ecb09a52540038936c"
142+
_, err := c.CI.CancelInventoryTriggerJob(context.Background(), jobId)
143+
log_status(err)
144+
}
145+
146+
func main() {
147+
// DescribeInventoryTriggerJob()
148+
// DescribeInventoryTriggerJobs()
149+
// CreateInventoryTriggerJob()
150+
// CancelInventoryTriggerJobs()
151+
}

0 commit comments

Comments
 (0)