shenqilun

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与内存的消耗

 

分类:

技术点:

相关文章: