Skip to content

Commit 40908e4

Browse files
authored
Add invoking workflow directly using cadence client samples (#79)
1 parent be51e0d commit 40908e4

File tree

2 files changed

+53
-3
lines changed

2 files changed

+53
-3
lines changed
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package main
2+
3+
import (
4+
"context"
5+
"github.com/google/uuid"
6+
"github.com/uber-common/cadence-samples/new_samples/worker"
7+
"go.uber.org/cadence/.gen/go/shared"
8+
"go.uber.org/zap"
9+
"time"
10+
)
11+
12+
func main() {
13+
cadenceClient := worker.BuildCadenceClient()
14+
logger := worker.BuildLogger()
15+
16+
domain := "cadence-samples"
17+
tasklist := "cadence-samples-worker"
18+
workflowID := uuid.New().String()
19+
requestID := uuid.New().String()
20+
executionTimeout := int32(60)
21+
closeTimeout := int32(60)
22+
23+
workflowType := "cadence_samples.HelloWorldWorkflow"
24+
input := []byte(`{"message": "Uber"}`)
25+
26+
req := shared.StartWorkflowExecutionRequest{
27+
Domain: &domain,
28+
WorkflowId: &workflowID,
29+
WorkflowType: &shared.WorkflowType{
30+
Name: &workflowType,
31+
},
32+
TaskList: &shared.TaskList{
33+
Name: &tasklist,
34+
},
35+
Input: input,
36+
ExecutionStartToCloseTimeoutSeconds: &executionTimeout,
37+
TaskStartToCloseTimeoutSeconds: &closeTimeout,
38+
RequestId: &requestID,
39+
}
40+
41+
ctx, cancel := context.WithTimeout(context.Background(), time.Minute)
42+
defer cancel()
43+
resp, err := cadenceClient.StartWorkflowExecution(ctx, &req)
44+
if err != nil {
45+
logger.Error("Failed to create workflow", zap.Error(err))
46+
panic("Failed to create workflow.")
47+
}
48+
49+
logger.Info("successfully started HelloWorld workflow", zap.String("runID", resp.GetRunId()))
50+
}

new_samples/worker/worker.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ const (
2828

2929
// StartWorker creates and starts a basic Cadence worker.
3030
func StartWorker() {
31-
logger, cadenceClient := buildLogger(), buildCadenceClient()
31+
logger, cadenceClient := BuildLogger(), BuildCadenceClient()
3232
workerOptions := worker.Options{
3333
Logger: logger,
3434
MetricsScope: tally.NewTestScope(TaskListName, nil),
@@ -59,7 +59,7 @@ func StartWorker() {
5959

6060
}
6161

62-
func buildCadenceClient() workflowserviceclient.Interface {
62+
func BuildCadenceClient() workflowserviceclient.Interface {
6363
dispatcher := yarpc.NewDispatcher(yarpc.Config{
6464
Name: ClientName,
6565
Outbounds: yarpc.Outbounds{
@@ -80,7 +80,7 @@ func buildCadenceClient() workflowserviceclient.Interface {
8080
)
8181
}
8282

83-
func buildLogger() *zap.Logger {
83+
func BuildLogger() *zap.Logger {
8484
config := zap.NewDevelopmentConfig()
8585
config.Level.SetLevel(zapcore.InfoLevel)
8686

0 commit comments

Comments
 (0)