8
8
"time"
9
9
10
10
"github.com/cschleiden/go-workflows/backend"
11
- "github.com/cschleiden/go-workflows/backend/sqlite "
11
+ "github.com/cschleiden/go-workflows/backend/redis "
12
12
"github.com/cschleiden/go-workflows/client"
13
+ "github.com/cschleiden/go-workflows/samples"
13
14
"github.com/cschleiden/go-workflows/worker"
14
15
"github.com/cschleiden/go-workflows/workflow"
15
16
"github.com/google/uuid"
@@ -18,7 +19,11 @@ import (
18
19
func main () {
19
20
ctx := context .Background ()
20
21
21
- b := sqlite .NewInMemoryBackend ()
22
+ // b := sqlite.NewInMemoryBackend()
23
+ b , err := redis .NewRedisBackend ("localhost:6379" , "" , "RedisPassw0rd" , 0 )
24
+ if err != nil {
25
+ panic (err )
26
+ }
22
27
23
28
// Run worker
24
29
go RunWorker (ctx , b )
@@ -69,42 +74,37 @@ func RunWorker(ctx context.Context, mb backend.Backend) {
69
74
}
70
75
71
76
func Workflow1 (ctx workflow.Context , msg string , subID string ) (string , error ) {
72
- log .Println ("Entering Workflow1" )
73
- log .Println ("\t Workflow instance input:" , msg )
74
- log .Println ("\t IsReplaying:" , workflow .Replaying (ctx ))
75
- defer log .Println ("Leaving Workflow1" )
77
+ samples .Trace (ctx , "Entering Workflow1" )
76
78
77
- log . Println ( "Waiting for first signal" )
79
+ samples . Trace ( ctx , "Waiting for first signal" )
78
80
workflow .Select (ctx ,
79
81
workflow .Receive (workflow .NewSignalChannel [int ](ctx , "test" ), func (ctx workflow.Context , r int , ok bool ) {
80
- log .Println ("Received signal:" , r )
81
- log .Println ("\t IsReplaying:" , workflow .Replaying (ctx ))
82
+ samples .Trace (ctx , "Received signal:" , r )
82
83
}),
83
84
)
84
85
85
- log . Println ( "Waiting for second signal" )
86
+ samples . Trace ( ctx , "Waiting for second signal" )
86
87
workflow .NewSignalChannel [int ](ctx , "test2" ).Receive (ctx )
87
- log . Println ( "Received second signal" )
88
+ samples . Trace ( ctx , "Received second signal" )
88
89
89
90
if _ , err := workflow .CreateSubWorkflowInstance [any ](ctx , workflow.SubWorkflowOptions {
90
91
InstanceID : subID ,
91
92
}, SubWorkflow1 ).Get (ctx ); err != nil {
92
93
panic (err )
93
94
}
94
95
95
- log . Println ( "Sub workflow finished" )
96
+ samples . Trace ( ctx , "Sub workflow finished" )
96
97
97
98
return "result" , nil
98
99
}
99
100
100
101
func SubWorkflow1 (ctx workflow.Context ) (string , error ) {
101
- log .Println ("Waiting for signal from sub-worflow" )
102
- defer log .Println ("Leaving SubWorkflow1" )
102
+ samples .Trace (ctx , "Waiting for signal from sub-worflow" )
103
103
104
104
c := workflow .NewSignalChannel [string ](ctx , "sub-signal" )
105
105
c .Receive (ctx )
106
106
107
- log . Println ( "Received. " )
107
+ samples . Trace ( ctx , "Received sub-workflow signal " )
108
108
109
109
return "World" , nil
110
110
}
0 commit comments