1、业务背景
项目是公司的主营业务之一,需要在拼多多用户授权后通过官方Api接口在短时间内获取用户的历史订单信息及增量订单信息。
2、需求介绍
在项目1.0版本中的订单策略是当用户授权后,拉取用户近15内的历史订单信息,把15日生成每半个小时一个订单拉取任务共720(即15*24*2)个历史订单任务。增量订单信息拆分成新增订单信息与更新订单信息,授权后每半个小时生成新增订单信息与更新订单信息各一次。系统设置三个定时任务,平均每10秒执行各类任务一次。
平均每类任务每日最大执行数量为:8640
由于用户数量增加至200用户,平均10秒执行各类任务一次,导致供不应求。现修改策略为,设置三个定时任务,每半小时执行,每次执行20000次任务包,以200并发执行。
3、服务器环境
服务器(虚拟):4核 4G
服务器系统:centos7
web平台:apache2.4
服务端脚本语言:php7
数据库:mysql5.6
php框架:thinkphp5
4、数据库结构
4、源码介绍
26行,设置随机数用于作为本次流程的唯一标识
28行,对操作的数据进行行锁
30行,启动事务
44行,执行采集函数
81行,订单成功写入数据库后,页数+1并清空流程id,本次流程结束。
97行,无订单,本次任务完成并清空流程id,本次流程结束。
5、php并发配置
php并发要求100以上,注意并发的提高同时会提高cpu与内存的消耗