有什么比较轻量级的定时任务队列么?

2017-01-24 02:48:20 +08:00
 dangyuluo

最近在开发一套电商系统,遇到一个难点。用户下单后半小时内必须支付,超时订单作废,商品自动释放。

我现在的方法是在数据库内记录下单时间戳,并且在进入支付页面、执行支付等动作时检查是否超时。但是感觉这种被动的检查订单是否超时方法有点不优雅,每一项和订单有关的操作都需要这么繁琐得检查。

我想使用一套定时触发的任务系统,比如用户下订单后就生成一个 1800 秒后执行的任务,任务内容为关闭订单+返回商品库存+向用户发送通知。我目前只使用了 rabbitMQ ,但是好像 rabbitMQ 并没有提供类似 cron 的定时任务功能。

不知道大家有什么推荐的解决方案么?

9220 次点击
所在节点    程序员
28 条回复
pubby
2017-01-24 10:52:32 +08:00
@pubby 以前用 rabbitmq ,后来改 beanstalk 了。很多地方都用,爬虫、邮件、短信、各种任务处理。楼主的需求我也用它做过
CallMeHoney
2017-01-24 11:04:19 +08:00
beanstalk
ahkxhyl
2017-01-24 11:06:25 +08:00
beanstalkd
l1905
2017-01-24 11:06:58 +08:00
简单处理的话, 感觉可以写个 cron 脚本, 每分钟定时执行, 去扫描这些待支付订单是否已过期
Mirana
2017-01-24 11:09:53 +08:00
放在 redis 有序队列里,定时轮询就可以
star7th
2017-01-24 14:39:07 +08:00
我写的 HTQ 的定时异步队列可满足要求

https://github.com/star7th/htq
mingyun
2017-01-24 23:22:39 +08:00
redis 简单
yepinf
2017-01-25 19:35:31 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/336557

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX