- 为什么写这个库
- 应用场景有哪些
- 如何使用
- 总结
为什么要写这个库?
在开始自研 go-queue 之前,针对以下我们调研目前的开源队列方案:
beanstalkd
beanstalkd 有一些特殊好用功能:支持任务priority、延时(delay)、超时重发(time-to-run)和预留(buried),能够很好的支持分布式的后台任务和定时任务处理。如下是 beanstalkd 基本部分:
job:任务单元;tube:任务队列,存储统一类型job。producer 和 consumer 操作对象;producer:job生产者,通过 put 将 job 加入一个 tube;consumer:job消费者,通过 reserve/release/bury/delete 来获取job或改变job的状态;
很幸运的是官方提供了 go client:https://github.com/beanstalkd/go-beanstalk。
但是这对不熟悉 beanstalkd 操作的 go 开发者而言

go-queue 是一个基于 beanstalkd 和 kafka 的分布式任务和消息队列框架,旨在降低开发者的使用成本。它提供了一个简化版的 API,支持延时任务、高可用性和可扩展性。go-queue 分为 dq 和 kq 两个组件,dq 适用于延时、定时任务,而 kq 适合异步、批量任务。框架的使用包括指定任务类型、消费逻辑等,方便开发者快速集成到项目中。
最低0.47元/天 解锁文章

388

被折叠的 条评论
为什么被折叠?



