上传文件流程对接
Posted xingyuecanxue
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了上传文件流程对接相关的知识,希望对你有一定的参考价值。
前几天对接的同事因为没有时间,所以整个上传文件的流程除了对接接口这块,其它的我先开发完成了。今天对接接口,同事说使用接口传输,数据处理时间大约需要7、8s,接口回应时间太长了。然后我提出了异步对接的思路:使用kafka进行传输。
方案1为之前接口传输的方案,方案2为新的异步传输的模式。
方案1:接口对接
文件格式
- 上传格式:gz(csv文件进行gz压缩)
- 解压后的csv编码:UTF-8(因为上传的原文件是utf-8)
- 解压后的csv格式进行校验:第二列为Mobile,第三列Province,第四列City,第六列为AreaCode
(需要用gzdecode进行解压文件获取数据)
传参
- filename :上传到fastdfs的文件名
- handle:1为处理文件,0为检验文件
- encoding: UTF-8
回参
- 格式:json数组格式
- 第一维键名分别为:handle(检验还是处理,检验是0,处理是1), add(新增),diff(不一致),del(需要删除,但未删除)
- 不一致的,对应顺序:旧数据=>新数据,如浙江变成上海,则浙江=>上海
- 举例:
array( ‘handle‘=>1, ‘add‘=>array( 0=>array( ‘code‘=>1807273, ‘province‘=>‘浙江‘, ‘area‘=>‘杭州‘, ‘at_id‘=>‘123‘, ), 1=>array( ‘code‘=>1521465, ‘province‘=>安徽, ‘area‘=>‘安庆‘, ‘at_id‘=>‘878‘, ), ), ‘diff‘=>array( 0=>array( ‘code‘=>132456, ‘province‘=>‘浙江=>河南‘, ‘area‘=>‘杭州=>信阳‘, ‘at_id‘=>‘878=>598‘, ), ), ‘del‘=>array( 0=>array( ‘code‘=>132456, ‘province‘=>‘浙江‘, ‘area‘=>‘杭州‘, ‘at_id‘=>‘587‘, ), ), )
方案2:kafka队列传输
1、catmanager上传文件成功后,将fastdfs的文件地址通过kafka队列传输给接口中心,接口中心通过常驻脚本消费kafka进行数据获取和处理 2、然后接口中心处理完成后,将处理结果上传到fastdfs,再将文件地址通过fastdfs传输给项目后台,后台也是用常驻脚本消费 3、传输格式:和方案1相同,每个参数用json数组传输
以上是关于上传文件流程对接的主要内容,如果未能解决你的问题,请参考以下文章
pbootcms对接微信扫码登录代码核心片段和步骤(前后端)
VSCode自定义代码片段15——git命令操作一个完整流程