YTaskGo 異步任務(wù)隊列
YTask 是 Go 的異步任務(wù)隊列,比起其他框架更方便快捷。
架構(gòu)圖:
特性:
- 支持幾乎所有類型,包括基本類型(int, floalt, string),數(shù)組切片,結(jié)構(gòu)體以及復(fù)雜的結(jié)構(gòu)體嵌套。
- 注冊任務(wù),調(diào)用任務(wù)一行代碼完成,不需要對參數(shù)進行而外處理。
- 優(yōu)雅的啟動與結(jié)束方式,能1秒結(jié)束任務(wù)(如果你用過其他的框架(比如gocelery,machinery)會發(fā)現(xiàn)就算沒有任務(wù),他們也沒法立即結(jié)束任務(wù),而是需要等幾秒)
安裝
go get github.com/gojuukaze/YTask/v2
注冊任務(wù)
type User struct{
...
}
// 任務(wù)函數(shù)
func DemoFunc(a int, b float64, c []string, user User) (int, []User, string) {
....
return ....
}
...
ser.Add("group1", "demo_func", DemoFunc)
調(diào)用任務(wù)
taskId, _ = client.Send("group1", "demo_func", 11, 22.2, []string{"bb", "cc"}, User{"hh",24})
獲取結(jié)果
result, _ = client.GetResult(taskId, 2*time.Second, 300*time.Millisecond) var a int var b []User var c string a, _ = result.GetInt64(0) // or result.Get(1,&b) // or result.Gets(&a, &b, &c)
評論
圖片
表情
