如何利用Swoole实现订单延时处理及库存还原?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1707个文字,预计阅读时间需要7分钟。
一、业务场景:当客户在指定时间内下单,如若没有支付,我们需要将这笔订单取消。
二、处理方法:一个有效的处理方法是使用延时取消功能。很多人首先想到的是使用crontab,这个方法也是可行的,但在这里我们不做过多展开。
一、业务场景:当客户下单在指定的时间内如果没有付款,那我们需要将这笔订单取消掉,比如好的处理方法是运用延时取消,很多人首先想到的当然是crontab,这个也行,不过这里我们运用swoole的异步毫秒定时器来实现,同样也不会影响到当前程序的运行。
二、说明,order_status为1时代表客户下单确定,为2时代表客户已付款,为0时代表订单已取消(正是swoole来做的)
三、举例说明,库存表csdn_product_stock产品ID为1的产品库存数量为20,产品ID为2的库存数量为40,然后客户下单一笔产品ID1减10,产品ID2减20,所以库存表只够2次下单,例子中10秒后自动还原库存。
本文共计1707个文字,预计阅读时间需要7分钟。
一、业务场景:当客户在指定时间内下单,如若没有支付,我们需要将这笔订单取消。
二、处理方法:一个有效的处理方法是使用延时取消功能。很多人首先想到的是使用crontab,这个方法也是可行的,但在这里我们不做过多展开。
一、业务场景:当客户下单在指定的时间内如果没有付款,那我们需要将这笔订单取消掉,比如好的处理方法是运用延时取消,很多人首先想到的当然是crontab,这个也行,不过这里我们运用swoole的异步毫秒定时器来实现,同样也不会影响到当前程序的运行。
二、说明,order_status为1时代表客户下单确定,为2时代表客户已付款,为0时代表订单已取消(正是swoole来做的)
三、举例说明,库存表csdn_product_stock产品ID为1的产品库存数量为20,产品ID为2的库存数量为40,然后客户下单一笔产品ID1减10,产品ID2减20,所以库存表只够2次下单,例子中10秒后自动还原库存。

