@@ -7,11 +7,12 @@ import (
7
7
8
8
"github.com/coreos/etcd/clientv3"
9
9
"github.com/leopoldxx/go-utils/lock"
10
+ "github.com/leopoldxx/go-utils/trace"
10
11
)
11
12
12
13
func newClientv3 () * clientv3.Client {
13
14
cli , err := clientv3 .New (clientv3.Config {
14
- Endpoints : []string {"http://127 .0.0.1 :2389" },
15
+ Endpoints : []string {"http://10 .0.2.15 :2389" },
15
16
DialTimeout : 5 * time .Second ,
16
17
})
17
18
if err != nil {
@@ -22,24 +23,36 @@ func newClientv3() *clientv3.Client {
22
23
23
24
func main () {
24
25
locker := lock .New (newClientv3 ())
26
+ ctx := trace .WithTraceForContext (context .TODO (), "test-main" )
27
+ tracer := trace .GetTraceFromContext (ctx )
28
+ tracer .Info ("begin test" )
25
29
26
- unlock , ctx , err := locker .Trylock (context . TODO () , "/lock" , lock .WithTTL (time .Second * 10 ))
30
+ unlock , ctx2 , err := locker .Trylock (ctx , "/lock" , lock .WithTTL (time .Second * 10 ))
27
31
if err != nil {
28
- log .Printf ("lock failed: %s" , err )
32
+ tracer .Warnf ("lock failed: %s" , err )
33
+ return
29
34
}
30
- log .Println ("safe" )
31
35
32
36
select {
33
37
case <- ctx .Done ():
34
- case <- time .After (time .Minute ):
38
+ case <- time .After (10 * time .Second ):
35
39
}
36
- log .Println ("safe" )
40
+ go func (ctx context.Context ) {
41
+ tracer := trace .GetTraceFromContext (ctx )
42
+ tracer .Info ("test context" )
43
+ }(ctx2 )
44
+
45
+ tracer .Info ("safe" )
37
46
unlock ()
38
47
39
- unlock , ctx , err = locker .Trylock (context . TODO () , "/lock" , lock .WithTTL (time .Minute * 10 ))
48
+ unlock , ctx3 , err : = locker .Trylock (ctx2 , "/lock" , lock .WithTTL (time .Minute * 10 ))
40
49
if err != nil {
41
- log .Printf ("lock failed: %s" , err )
50
+ tracer .Infof ("lock failed: %s" , err )
51
+ return
42
52
}
43
- log .Println ("safe" )
53
+ go func (ctx context.Context ) {
54
+ tracer := trace .GetTraceFromContext (ctx )
55
+ tracer .Info ("test context" )
56
+ }(ctx3 )
44
57
unlock ()
45
58
}
0 commit comments