一般php都不会去处理大量数据的结算,php是网页脚本语言! 不合适执行时间较长的操作! 我们一般都会交到后端给其他程序处理 如:python java C等其他服务端去处理 然后中间返回给我们想要的结果和数据!
可能根据业务和现实的情况需要,我们可能会用php 处理一些量大数据结算!如收益结算,交易结算等。在处理之前我们要梳理清楚业务流程,保证业务流程的正确性和结算的准确性。我们可以根绝我们的实际情况选择去处理!这样的结算不仅仅之前我们写过,也见过很多写过! 大家都会有不同的方法去处理!之前我们见过别人的一些方法 结算方法: 1. 跳转到结算页面 每次结算一天或者多条 然后 通过页面 js 跳转到 下一条要结算的数据【 防止页面超时】!中间也可以加进度条去显示 2. 异步请求结算数据 每次传递不同的id进去 3. 结算显示进度条 可以进度条显示 显示结算进度 结算完成之后 给提示
只要业务逻辑没有问题,中间加入判断机制 防止重复结算 都是可以实现我们这个数据的结算的!这样结算跟网络和机器的性能有关! 当然中间我们会加入 事务处理 如果没有执行成功 我们不提交事务就可以了! 业务中断! 我们会接着上次的结算 保证数据不出错! 这些计算也是有缺陷的 结算时间长,耗费资源比较多 ! 如果数据太大的话 明显不合适的! 几万条的数据可以选择! 如果太多就要弃用,使用其他方法去处理!
我们只能才用异步去处理!点击结算后 请求给服务端 服务端去处理, 根据情况返回进度和结果!我们可以考虑使用其他语言!如java c++ python go 等去处理!现在有了workerman和swoole 扩展 用php也可以做服务端 !我们要把要结算的数据存放到队列里面,然后异步提交给服务端 服务端步返回结算进度和结算结果!这样就可以结算我们的数据了!服务端都可以支持多进程去结算我们的数据!我们也可以开启多个进程去处理!
推荐阅读
- 对GO切片的理解
- 小程序商城网站开发秒杀模块篇
- 盲盒购物网站系统开发建设 第三篇
- Netty核心概念之ChannelHandler&Pipeline&ChannelHandlerContext
- 简单的线程池实现多线程对大文件的读取
- SSH 端口转发与 SOCKS 代理
- Ubuntu16.04/Scala2.11.8安装教程
- 学习PHP中的高精度计时器HRTime扩展
- 使用OpenResty+Lua实现灰度测试(金丝雀)
- 使用源码编译安装PHP扩展