7
7
"os/signal"
8
8
9
9
"github.com/cschleiden/go-workflows/backend"
10
- "github.com/cschleiden/go-workflows/backend/sqlite "
10
+ "github.com/cschleiden/go-workflows/backend/redis "
11
11
"github.com/cschleiden/go-workflows/client"
12
+ "github.com/cschleiden/go-workflows/samples"
12
13
"github.com/cschleiden/go-workflows/worker"
13
14
"github.com/cschleiden/go-workflows/workflow"
14
15
"github.com/google/uuid"
@@ -18,8 +19,12 @@ import (
18
19
func main () {
19
20
ctx := context .Background ()
20
21
21
- b := sqlite .NewInMemoryBackend ()
22
+ // b := sqlite.NewInMemoryBackend()
22
23
// b := sqlite.NewSqliteBackend("subworkflow.sqlite")
24
+ b , err := redis .NewRedisBackend ("localhost:6379" , "" , "RedisPassw0rd" , 0 )
25
+ if err != nil {
26
+ panic (err )
27
+ }
23
28
24
29
// Run worker
25
30
go RunWorker (ctx , b )
@@ -60,66 +65,48 @@ func RunWorker(ctx context.Context, mb backend.Backend) {
60
65
}
61
66
62
67
func Workflow1 (ctx workflow.Context , msg string ) error {
63
- log .Println ("Entering Workflow1" )
64
- log .Println ("\t Workflow instance input:" , msg )
65
- log .Println ("\t IsReplaying:" , workflow .Replaying (ctx ))
66
-
67
- defer func () {
68
- log .Println ("Leaving Workflow1" )
69
- }()
68
+ samples .Trace (ctx , "Entering Workflow1" )
69
+ samples .Trace (ctx , "\t Workflow instance input:" , msg )
70
70
71
71
wr , err := workflow .CreateSubWorkflowInstance [string ](ctx , workflow .DefaultSubWorkflowOptions , Workflow2 , "some input" ).Get (ctx )
72
72
if err != nil {
73
73
return errors .Wrap (err , "could not get sub workflow result" )
74
74
}
75
75
76
- log . Println ( "Sub workflow result:" , wr )
76
+ samples . Trace ( ctx , "Sub workflow result:" , wr )
77
77
78
78
return nil
79
79
}
80
80
81
81
func Workflow2 (ctx workflow.Context , msg string ) (string , error ) {
82
- log .Println ("Entering Workflow2" )
83
- log .Println ("\t Workflow instance input:" , msg )
84
- log .Println ("\t IsReplaying:" , workflow .Replaying (ctx ))
85
-
86
- defer func () {
87
- log .Println ("Leaving Workflow2" )
88
- }()
82
+ samples .Trace (ctx , "Entering Workflow2" )
83
+ samples .Trace (ctx , "\t Workflow instance input:" , msg )
89
84
90
85
r1 , err := workflow .ExecuteActivity [int ](ctx , workflow .DefaultActivityOptions , Activity1 , 35 , 12 ).Get (ctx )
91
86
if err != nil {
92
87
panic ("error getting activity 1 result" )
93
88
}
94
- log .Println ("R1 result:" , r1 )
95
- log .Println ("\t IsReplaying:" , workflow .Replaying (ctx ))
89
+ samples .Trace (ctx , "R1 result:" , r1 )
96
90
97
91
r2 , err := workflow .ExecuteActivity [int ](ctx , workflow .DefaultActivityOptions , Activity2 ).Get (ctx )
98
92
if err != nil {
99
93
panic ("error getting activity 1 result" )
100
94
}
101
- log .Println ("R2 result:" , r2 )
102
- log .Println ("\t IsReplaying:" , workflow .Replaying (ctx ))
95
+ samples .Trace (ctx , "R2 result:" , r2 )
103
96
104
97
return "W2 Result" , nil
105
98
}
106
99
107
100
func Activity1 (ctx context.Context , a , b int ) (int , error ) {
108
101
log .Println ("Entering Activity1" )
109
-
110
- defer func () {
111
- log .Println ("Leaving Activity1" )
112
- }()
102
+ defer log .Println ("Leaving Activity1" )
113
103
114
104
return a + b , nil
115
105
}
116
106
117
107
func Activity2 (ctx context.Context ) (int , error ) {
118
108
log .Println ("Entering Activity2" )
119
-
120
- defer func () {
121
- log .Println ("Leaving Activity2" )
122
- }()
109
+ defer log .Println ("Leaving Activity2" )
123
110
124
111
return 12 , nil
125
112
}
0 commit comments