[研究背景]
: 下单之后如果三十分钟之内没有付款就自动取消订单。
: 定时任务的调度, 当天某些需要处理的数据
[当前处理方式]
定期轮训数据库
优点:实现简单
缺点:数据量过大时会消耗太多的IO资源,效率太低
[思路]
- swoole定时器
- 利用rabbitMQ的TTL机制
[实践]
swoole
ps: 本来是想解决 lumen秒级系统定时任务来了解的(lumen秒级定时 可以写一个互斥+sleep实现 但觉得low 好了好了 回归正题)
a simple demo
就....我不会swoole鸭
rabbitMQ理论验证
Dead Letter Exchange
在队列上指定一个死信交换机,当在该队列上发生:
1.消息被拒绝
2.消息过期而被删除(TTL)
3.消息数量超过队列最大限制而被删除
4.消息总大小超过队列最大限制而被删除
上边的抄来的~~~~~~ 我们来看TTL就好了
咱先来个交换机
我们之前创建的交换机 作为DLX (但要注意 in the same virtual host)
next...
好啦 我们可以验收成果了 请看演示.......