V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
lien321
V2EX  ›  分享创造

[自研开源] MyData 数据集成之分批传输 v0.7

  •  
  •   lien321 · 252 天前 · 862 次点击
    这是一个创建于 252 天前的主题,其中的信息可能已经有所发展或是发生改变。

    开源地址:gitee | github

    详细介绍:MyData 基于 Web API 的数据集成平台

    部署文档:用 Docker 部署 MyData

    使用手册:MyData 使用手册

    试用体验:https://demo.mydata.work

    交流 Q 群:430089673

    介绍

    本篇基于 数据集成之任务流程 介绍任务分批传输的使用场景和配置操作。

    使用场景

    mydata 使用 API 方式集成数据,当一次请求或响应 传输数据量较多时 可能无法完成、或容易对服务端造成影响,因此需要分为多次处理;

    例如 常见的分页查询、导入大量数据时分批处理、集成对接时的全量同步等;

    分批传输数据

    业务系统与 mydata 集成时,在提供数据消费数据这两个方向上分别实现分批传输;

    提供数据

    由 mydata 调用应用的 API 获取数据,通过配置分批参数 实现一次任务内多次调用 API 获取完整数据,有以下两种基本的配置模式:

    • 配置了 固定参数size=10 、递增参数current 从 1 开始每次递增 1 、每次间隔1 秒的任务;

    在这里插入图片描述

    • 配置了 递增参数start 从 1 开始每次递增 100 、递增参数end 从 100 开始每次递增 100 、每次间隔1 秒的任务;

    在这里插入图片描述

    执行过程如下代码,要点有:

    • 通过 do-while 结构 兼容单次和分批;

    • lastProduceData记录上一次数据,用于和本次对比数据,若重复 则结束,避免死循环(理论上很少有 2 次完全一样的数据);

    • 若分批有异常,则复用任务 3 次出错 自动结束并发送邮件通知的功能;

    • 执行完一次后,自动计算递增参数值;

    消费数据

    由 mydata 通过 API 向应用发送数据,通过配置分批参数 限制每次向 API 发送的数据量,从而减少数据查询量和请求处理时间;

    如下图,配置了分批数量为 1000 的任务,分批参数为选填,mydata 将按 1000 为限制查询符合条件的数据,通过 API 请求发送给应用;

    在这里插入图片描述

    执行过程如下代码,要点有:

    • 通过 do-while 结构 兼容单次和分批;
    • 自动管理分页参数,执行分页查询数据,发送给 API ;
    • 直到分页查询没有数据 自动结束;
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3686 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 10:37 · PVG 18:37 · LAX 02:37 · JFK 05:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.