Go 异步任务队列 YTask

GPL-3.0
Google Go 查看源码»
跨平台
2019-09-03
五十风
YTask 正在参加 2019 年度最受欢迎开源中国软件评选,请投票支持!
YTask 在 2019 年度最受欢迎开源中国软件评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票赢奖品
已投票

YTask 是 Go 的异步任务队列,比起其他框架更方便快捷。

架构图:

architecture_diagram

特性:

  • 支持几乎所有类型,包括基本类型(int, floalt, string),数组切片,结构体以及复杂的结构体嵌套。
  • 注册任务,调用任务一行代码完成,不需要对参数进行而外处理。
  • 优雅的启动与结束方式,能1秒结束任务(如果你用过其他的框架(比如gocelery,machinery)会发现就算没有任务,他们也没法立即结束任务,而是需要等几秒)

安装

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)
的码云指数为
超过 的项目
加载中

评论(0)

暂无评论

暂无资讯

暂无问答

消息队列(kafka/nsq等)与任务队列(celery/ytask等)到底有什么不同?

原文链接:https://www.ikaze.cn/article/43 写这篇博文的起因是,我在论坛宣传我开源的新项目YTask(go语言异步任务队列)时,有小伙伴在下面回了一句“为什么不用nsq?”。这使我想起,我在...

09/04 15:03
52
0

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部