taskq 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
taskq 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
taskq 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 BSD-2-Clause
开发语言 Google Go
操作系统 跨平台
软件类型 开源软件
开源组织
地区 不详
投 递 者 白开水不加糖
适用人群 未知
收录时间 2022-04-22

软件简介

taskq 是一个带有 Redis、SQS、IronMQ 和内存后端的 Golang 异步任务/作业队列。

特性:

  • Redis、SQS、IronMQ 和内存后端。
  • 自动缩放用于获取(fetcher)和处理消息(worker)的 goroutines 的数量。
  • 全局速率限制。
  • 工人的全球限制。
  • 调用一次 - 删除具有相同名称的重复消息。
  • 使用指数退避自动重试。
  • 当队列中的所有消息都失败时自动暂停。
  • 用于处理失败消息的后备处理程序。
  • 消息批处理。它用于 SQS 和 IronMQ 后端批量添加/删除消息。
  • 使用 snappy / s2 自动压缩消息。

API overview

t := myQueue.RegisterTask(&taskq.TaskOptions{
    Name:    "greeting",
    Handler: func(name string) error {
        fmt.Println("Hello", name)
        return nil
    },
})

// Say "Hello World".
err := myQueue.Add(t.WithArgs(context.Background(), "World"))
if err != nil {
    panic(err)
}

// Say "Hello World" with 1 hour delay.
msg := t.WithArgs(ctx, "World")
msg.Delay = time.Hour
_ = myQueue.Add(msg)

// Say "Hello World" once.
for i := 0; i < 100; i++ {
    msg := t.WithArgs(ctx, "World")
    msg.Name = "hello-world" // unique
    _ = myQueue.Add(msg)
}

// Say "Hello World" once with 1 hour delay.
for i := 0; i < 100; i++ {
    msg := t.WithArgs(ctx, "World")
    msg.Name = "hello-world"
    msg.Delay = time.Hour
    _ = myQueue.Add(msg)
}

// Say "Hello World" once in an hour.
for i := 0; i < 100; i++ {
    msg := t.WithArgs(ctx, "World").OnceInPeriod(time.Hour)
    _ = myQueue.Add(msg)
}

// Say "Hello World" for Europe region once in an hour.
for i := 0; i < 100; i++ {
    msg := t.WithArgs(ctx, "World").OnceInPeriod(time.Hour, "World", "europe")
    _ = myQueue.Add(msg)
}
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击引领话题📣
暂无内容
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
0 评论
21 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部
返回顶部
顶部