Skip to content
/ TasQ Public

TaskQ is a lightweight asynchronous task queue by Golang

Notifications You must be signed in to change notification settings

Wzy-CC/TasQ

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

TasQ

TasQ is a lightweight asynchronous task queue by Golang

golang异步任务队列设计文档/实现提纲 需求/目标

  1. 超轻量级
  2. 超长任务的管理控制
  3. 多消费者和多生产者
  4. 任务回调机制
  5. 调度机制:抢占式调度和优先级
  6. 支持多种broker,方便插拔
  7. 重试机制,自定义参数进行重试
  8. 任务记时
  9. 可自定义配置文件,例如重试次数,重试时间,消费者生产者个数,任务处理快慢,任务最大上限。。。
  10. 应该提供出抽象接口进行解耦,防止侵入太深
  11. 持久化任务运行结果,日志系统
  12. 支持多种序列化方案进行序列化
  13. 并发安全/高并发
  14. 分布式
  15. 其他定制化

调研: 目前流行的golang异步任务队列:

设计: 异步任务队列的流程: 生产者发布任务 —— broker —— 消费者竞争任务,进行消费 —— 确认消费成功,保存结果/消费失败, 重新执行任务(重新发送任务还是同一个任务进行重复执行?

实现细节: broker应当是一个接口,任何实现broker接口的可以:

// 草稿 目前支持: redis: redis-cluster集群版,redis单机版

mongo: mongo-driver

mysql:

主流消息队列: dd

About

TaskQ is a lightweight asynchronous task queue by Golang

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages