YTask -- Go 異步任務隊列

YTask 是 Go 的異步任務隊列,比起其他框架更方便快捷。

架構圖:

architecture_diagram

特性:

  • 支持幾乎所有類型,包括基本類型(int, floalt, string),數組切片,結構體以及複雜的結構體嵌套。
  • 註冊任務,調用任務一行代碼完成,不需要對參數進行而外處理。
  • 優雅的啓動與結束方式,能1秒結束任務(如果你用過其他的框架(比如gocelery,machinery)會發現就算沒有任務,他們也沒法立即結束任務,而是需要等幾秒)

GitHub:

https://github.com/gojuukaze/YTask

安裝

go get github.com/gojuukaze/YTask/v2

註冊任務

type User struct{
    ...
}
// 任務函數
func DemoFunc(a int, b float64, c []string, user User) (int, []User, string) {
    ....
    return ....
}

...

ser.Add("group1", "demo_func", DemoFunc)

調用任務

taskId, _ = client.Send("group1", "demo_func", 11, 22.2, []string{"bb", "cc"}, User{"hh",24})

獲取結果

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)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章