PHP如何实现订单的延时处理,有哪些长尾关键词策略?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1769个文字,预计阅读时间需要8分钟。
业务需求+订单是我们在日常开发中经常遇到的一个功能,最近在处理业务时需要实现订单超时自动取消的功能,初步确认了几种方法:+客户端到时间请求取回订单
业务需求
订单是我们在日常开发中经常会遇到的一个功能,最近在做业务的时候需要实现客户下单之后订单超时未支付自动取消的功能,刚开始确认了几种方法:
- 客户端到时间请求取消
- 服务端定时查询有没有需要取消的订单,然后批量处理
- 下单后创建定时器,延时处理
- 使用redis或者memcache存储,设置过期时间,自动删除
综合考虑上述方法,第一种最先排除,因为如果客户把APP后台禁止或者网络连接禁止,那么就无法发给服务端请求,订单就会一直是未处理状态;第二种方法使用的比较多,不过存在准确度的问题,还有需要确认定时任务的周期,暂时列为后补方法;第四种方法存在的问题就是订单如果删除就是物理删除,无法统计未处理数据(当然可以存redis时候顺便存在mysql这样的数据库做长久存储然后用方法二定时处理)。
最终准备使用方法三。
再确认使用方法3的时候,由于使用的PHP这种开发语言,所以想实现定时器功能需要借助Swoole或者workerman。由于Swoole是C开发的扩展框架,性能方面肯定比较好,就选了Swoole。
本文共计1769个文字,预计阅读时间需要8分钟。
业务需求+订单是我们在日常开发中经常遇到的一个功能,最近在处理业务时需要实现订单超时自动取消的功能,初步确认了几种方法:+客户端到时间请求取回订单
业务需求
订单是我们在日常开发中经常会遇到的一个功能,最近在做业务的时候需要实现客户下单之后订单超时未支付自动取消的功能,刚开始确认了几种方法:
- 客户端到时间请求取消
- 服务端定时查询有没有需要取消的订单,然后批量处理
- 下单后创建定时器,延时处理
- 使用redis或者memcache存储,设置过期时间,自动删除
综合考虑上述方法,第一种最先排除,因为如果客户把APP后台禁止或者网络连接禁止,那么就无法发给服务端请求,订单就会一直是未处理状态;第二种方法使用的比较多,不过存在准确度的问题,还有需要确认定时任务的周期,暂时列为后补方法;第四种方法存在的问题就是订单如果删除就是物理删除,无法统计未处理数据(当然可以存redis时候顺便存在mysql这样的数据库做长久存储然后用方法二定时处理)。
最终准备使用方法三。
再确认使用方法3的时候,由于使用的PHP这种开发语言,所以想实现定时器功能需要借助Swoole或者workerman。由于Swoole是C开发的扩展框架,性能方面肯定比较好,就选了Swoole。

