77go get github.com /wanghaha-dev/asyncTask
88```
99
10- 使用
10+ 简单使用
1111``` go
1212package main
1313
1414import (
1515 " context"
1616 " fmt"
17+ " log"
18+
1719 " github.com/wanghaha-dev/asyncTask"
20+ )
21+
22+ func main () {
23+ task , err := asyncTask.NewTask (context.Background (), asyncTask.Config {
24+ Addr: " 127.0.0.1:6379" ,
25+ DB: 0 ,
26+ Password: " " ,
27+ })
28+ if err != nil {
29+ panic (err)
30+ }
31+
32+ // put task
33+ taskId , err := asyncTask.GenerateTaskId ()
34+ if err != nil {
35+ log.Fatalln (" generate taskId error!" )
36+ }
37+ task.PutNormalTask (taskId, asyncTask.Map {
38+ " name" : " task1" ,
39+ " date" : asyncTask.Datetime (),
40+ " user" : " 1001" ,
41+ })
42+
43+ // take task
44+ t1 , err := task.TakeNormalTask ()
45+ if err != nil {
46+ log.Fatalln (" take normal task error:" , err)
47+ }
48+
49+ fmt.Println (" take task is: " , t1)
50+ fmt.Println (t1[" task_id" ], t1[" data" ])
51+ fmt.Println (t1[" data" ].(map [string ]interface {})[" name" ])
52+ jsonContext , err := t1.GetJSON ()
53+ if err != nil {
54+ log.Fatalln (" GetJson error: " , err)
55+ }
56+ fmt.Println (t1.GetJSON ())
57+ // {"data":{"date":"2022-08-26 10:26:44","name":"task1","user":"1001"},"task_id":"03efb9e08b284642b5fd1ea11ae20341"}
58+ fmt.Println (asyncTask.JSONGet (jsonContext, " data.name" ))
59+ }
60+ ```
61+
62+
63+
64+ 并发使用
65+ ``` go
66+ package main
67+
68+ import (
69+ " context"
70+ " fmt"
71+ " log"
1872 " sync"
73+
74+ " github.com/wanghaha-dev/asyncTask"
1975)
2076
2177func main () {
22- ctx := context.Background ()
23- task , err := asyncTask.NewTask (ctx, asyncTask.Config {
24- Addr: " 127.0.0.1:6379" ,
78+ task , err := asyncTask.NewTask (context.Background (), asyncTask.Config {
79+ Addr: " 127.0.0.1:6379" ,
2580 DB: 0 ,
2681 Password: " " ,
2782 })
@@ -30,29 +85,38 @@ func main() {
3085 }
3186
3287 var wg sync.WaitGroup
33- wg.Add (1 )
88+ wg.Add (200 )
3489
35- // take task
90+ // put task
3691 go func () {
37- asyncTask.Each (1000 , func () {
38- data , err := task. TakeNormalTask ()
92+ asyncTask.Each (100 , func () {
93+ taskId , err := asyncTask. GenerateTaskId ()
3994 if err != nil {
40- panic (err )
95+ log. Fatalln ( " generate taskId error! " )
4196 }
42- fmt.Println (" data:" , data)
97+ task.PutNormalTask (taskId, asyncTask.Map {
98+ " name" : " task1" ,
99+ " date" : asyncTask.Datetime (),
100+ " user" : " 1001" ,
101+ })
102+
103+ wg.Done ()
43104 })
44- wg.Done ()
45105 }()
46106
47- // put task
48- asyncTask.Each (1000 , func () {
49- err = task.PutNormalTask (" ddd" , asyncTask.Map {
50- " name" : " wanghaha" ,
107+ // take task
108+ go func () {
109+ asyncTask.Each (100 , func () {
110+ t1 , err := task.TakeNormalTask ()
111+ if err != nil {
112+ log.Fatalln (" take normal task error:" , err)
113+ }
114+
115+ fmt.Println (" take task is: " , t1)
116+
117+ wg.Done ()
51118 })
52- if err != nil {
53- panic (err)
54- }
55- })
119+ }()
56120
57121 wg.Wait ()
58122 fmt.Println (" finish." )
0 commit comments