Redis库存告急商品过期的警告(redis里商品库存过期)
Redis库存告急:商品过期的警告!
由于近来大量消费者的商品购买,Redis库存处于急速流失状态,已经使得部分已经到达过期期限的商品无法完成发货。Redis让错失发货机会的消费者非常失望,也使得销售和采购管理者处于不利地位,Redis商城觉得自己应该针对这种情况采取行动,防止重复发生。
为了解决此类问题,Redis商城决定应用定时任务和队列系统来及时通知商品过期,这样可以有效解决商品过期的问题。Redis商城建立一个检查商品信息库的定时任务,每分钟对今晚24点前即将过期的商品进行检测,输出过期商品的ID,把这些ID记录到一个队列,Redis商城通过etcd集群系统,把这些ID信息发送到多个消息队列里,如RabbitMQ,RabbitMQ流水线系统实时检测这个消息,并及时转发给已订购商品消费者,提醒他们该商品已经过期。
为应对商品过期的问题,Redis商城还采用了PHP语言开发一个App应用,把商品过期发送到App里通知消费者,消费者就可以及时看到并重新挑选商品,以避免出现商品过期的状况。
为此,Redis商城不失时机的做出防范的措施,使得商城的可靠性有了明显的提升,让消费者有把握买到最新的商品,必要时也能及时调整购买行为,以达到最佳实用效果。
// 检查商品信息库定时任务
$schedule->call(function () { // 获取今晚24点前即将过期的商品
$expireGoods = Goods::where('expired_at', 'get();
// 记录过期的商品ID $expireIds = [];
foreach ($expireGoods as $goods) { array_push($expireIds, $goods->id);
} // 发送过期商品ID到队列
Queue::push('App\Jobs\GoodsExpireWarning', ['expireIds' => $expireIds]);})->dly();