node写的订单
最近写项目 有个需求是当客户下订单如果2分钟没有支付 订单失效。那我怎么知道这个订单在两分钟失效呢!我现在是不断跑脚本去查看有没有失效的订单。
8 回复
简单点:setTimeout + events
复杂点:redis keyspace notification(键空间通知) + subscribe (对某个 key 设置失效时间,在过期时发出通知)
简单点那个 不太好 不适合大量的订单。键空间通知 对于现在redis 来说 不算太稳定 有时可能失效 接受不到通知
记录时间节点 标记状态就行 然后如果需要标记失效也可以做个批处理标记
创建订单的时候 标记一个创建时间。 后面在别的业务中用到这个订单的时候 用创建时间+有效时间 就是订单的过期时间,这时候检查一下是否过期就行了。 或者直接把订单存到redis里,给一个expire
队列
访问的时候,再确定状态
疯狂打call