YTask 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
YTask 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
YTask 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
YTask 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
YTask 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !
授权协议 GPL-3.0
开发语言 Google Go 查看源码 »
操作系统 跨平台
软件类型 开源软件
开源组织
地区 国产
投 递 者 五十风
适用人群 未知
收录时间 2019-09-03

软件简介

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)
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (0)

加载中
更多评论
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
2019/09/04 15:03

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

原文链接:https://www.ikaze.cn/article/43 写这篇博文的起因是,我在论坛宣传我开源的新项目YTask(go语言异步任务队列)时,有小伙伴在下面回了一句“为什么不用nsq?”。这使我想起,我在和同事介绍celery时同事说了一句“这不就是kafka吗?”。 那么YTask和nsq,celery和kafka?他们之间到底有什么不同呢?下面我结合自己的理解。简单的分析一下,如有不足请指出。 首先,nsq和kafka它们属于消息队列;YTask和celery它们属...

0
1
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
0 评论
25 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部