基于Redis实现的延迟队列

应用场景

  • 订单超过30分钟未支付,自动关闭
  • 订单完成后, 如果用户一直未评价, 5天后自动好评
  • 会员到期前15天, 到期前3天分别发送短信提醒

实现原理

利用Redis的有序集合,member为JobID,score为任务执行的时间戳,每秒扫描一次集合,取出执行时间小于等于当前时间的任务.

源码安装

  • go语言版本1.10+
  • go get -d github.com/TeamFat/DelayQueue
  • go build

运行

./DelayQueue

HTTP Server监听0.0.0.0:8080, Redis连接地址127.0.0.1:6379, 数据库编号2, 数据库密码123456 具体配置见conf/config.yaml,按需修改

 

更多移步:https://github.com/TeamFat/DelayQueue

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据