/
main.go
90 lines (73 loc) · 2.49 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
package main
import (
"context"
"log"
"github.com/sdcxtech/sentrytemporal/tests/workflow_cases"
"go.temporal.io/sdk/client"
)
func main() {
// The client is a heavyweight object that should be created once per process.
c, err := client.Dial(client.Options{})
if err != nil {
log.Fatalln("Unable to create client", err)
}
defer c.Close()
RunWorkflowPanic(c)
RunWorkflowError(c)
RunWorkflowQueryHandler(c)
}
func RunWorkflowPanic(c client.Client) {
workflowOptions := client.StartWorkflowOptions{
ID: "sentry_tests_workflows_cases/panic",
TaskQueue: "sentry",
}
we, err := c.ExecuteWorkflow(context.Background(), workflowOptions, workflow_cases.WorkflowPanic, "Temporal")
if err != nil {
log.Fatalln("Unable to execute workflow", err)
}
log.Println("Started workflow", "WorkflowID", we.GetID(), "RunID", we.GetRunID())
// Synchronously wait for the workflow completion.
var result string
err = we.Get(context.Background(), &result)
if err != nil {
log.Fatalln("Unable get workflow result", err)
}
log.Println("Workflow result:", result)
}
func RunWorkflowError(c client.Client) {
workflowOptions := client.StartWorkflowOptions{
ID: "sentry_tests_workflows_cases/error",
TaskQueue: "sentry",
}
we, err := c.ExecuteWorkflow(context.Background(), workflowOptions, workflow_cases.WorkflowError, "Temporal")
if err != nil {
log.Fatalln("Unable to execute workflow", err)
}
log.Println("Started workflow", "WorkflowID", we.GetID(), "RunID", we.GetRunID())
// Synchronously wait for the workflow completion.
var result string
err = we.Get(context.Background(), &result)
if err != nil {
log.Fatalln("Unable get workflow result", err)
}
log.Println("Workflow result:", result)
}
func RunWorkflowQueryHandler(c client.Client) {
workflowOptions := client.StartWorkflowOptions{
ID: "sentry_tests_workflows_cases/query",
TaskQueue: "sentry",
}
we, err := c.ExecuteWorkflow(context.Background(), workflowOptions, workflow_cases.WorkflowQueryHandler, "Temporal")
if err != nil {
log.Fatalln("Unable to execute workflow", err)
}
log.Println("Started workflow", "WorkflowID", we.GetID(), "RunID", we.GetRunID())
_, err = c.QueryWorkflow(context.Background(), we.GetID(), we.GetRunID(), "error", "query error")
if err != nil {
log.Println("Unable to execute query workflow", err)
}
_, err = c.QueryWorkflow(context.Background(), we.GetID(), we.GetRunID(), "panic", "query panic")
if err != nil {
log.Println("Unable to execute query workflow", err)
}
}