上传文件流程对接

Posted xingyuecanxue

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了上传文件流程对接相关的知识,希望对你有一定的参考价值。

  前几天对接的同事因为没有时间,所以整个上传文件的流程除了对接接口这块,其它的我先开发完成了。今天对接接口,同事说使用接口传输,数据处理时间大约需要7、8s,接口回应时间太长了。然后我提出了异步对接的思路:使用kafka进行传输。

  方案1为之前接口传输的方案,方案2为新的异步传输的模式。

方案1:接口对接

文件格式

  1. 上传格式:gz(csv文件进行gz压缩)
  2. 解压后的csv编码:UTF-8(因为上传的原文件是utf-8)
  3. 解压后的csv格式进行校验:第二列为Mobile,第三列Province,第四列City,第六列为AreaCode
(需要用gzdecode进行解压文件获取数据)

传参

  1. filename :上传到fastdfs的文件名
  2. handle:1为处理文件,0为检验文件
  3. encoding: UTF-8

回参

  1. 格式:json数组格式
  2. 第一维键名分别为:handle(检验还是处理,检验是0,处理是1), add(新增),diff(不一致),del(需要删除,但未删除)
  3. 不一致的,对应顺序:旧数据=>新数据,如浙江变成上海,则浙江=>上海
  4. 举例:
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对接微信扫码登录代码核心片段和步骤(前后端)

java Ftp上传创建多层文件的代码片段

VSCode自定义代码片段——git命令操作一个完整流程

VSCode自定义代码片段15——git命令操作一个完整流程

VSCode自定义代码片段15——git命令操作一个完整流程

前端对接微信公众号网页开发流程,前期配置