@@ -3,6 +3,8 @@ package main
3
3
import (
4
4
"context"
5
5
"log"
6
+ "sync"
7
+ "time"
6
8
7
9
"github.com/cschleiden/go-workflows/backend/mysql"
8
10
"github.com/cschleiden/go-workflows/client"
@@ -14,23 +16,37 @@ func main() {
14
16
ctx := context .Background ()
15
17
16
18
//b := sqlite.NewSqliteBackend("../scale.sqlite")
17
- b := mysql .NewMysqlBackend ("localhost" , 3306 , "root" , "SqlPassw0rd" , "simple " )
19
+ b := mysql .NewMysqlBackend ("localhost" , 3306 , "root" , "SqlPassw0rd" , "scale " )
18
20
19
21
// Start workflow via client
20
22
c := client .New (b )
21
23
24
+ wg := & sync.WaitGroup {}
25
+
26
+ now := time .Now ()
27
+
22
28
for i := 0 ; i < 100 ; i ++ {
23
- startWorkflow (ctx , c )
29
+ wg .Add (1 )
30
+
31
+ go startWorkflow (ctx , c , wg )
24
32
}
33
+
34
+ wg .Wait ()
35
+
36
+ log .Println ("Finished in" , time .Since (now ))
25
37
}
26
38
27
- func startWorkflow (ctx context.Context , c client.Client ) {
39
+ func startWorkflow (ctx context.Context , c client.Client , wg * sync. WaitGroup ) {
28
40
wf , err := c .CreateWorkflowInstance (ctx , client.WorkflowInstanceOptions {
29
41
InstanceID : uuid .NewString (),
30
42
}, scale .Workflow1 , "Hello world " + uuid .NewString ())
31
43
if err != nil {
32
44
panic ("could not start workflow" )
33
45
}
34
46
35
- log .Println ("Started workflow" , wf .GetInstanceID ())
47
+ // log.Println("Started workflow", wf.GetInstanceID())
48
+
49
+ c .WaitForWorkflowInstance (ctx , wf , time .Second * 30 )
50
+
51
+ wg .Done ()
36
52
}
0 commit comments