[自研开源] MyData 数据集成之环境变量 v0.7.2

258 天前
 lien321

数据集成之环境变量 v0.7.2

开源地址:gitee | github

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

部署文档:用 Docker 部署 MyData

使用手册:MyData 使用手册

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

交流 Q 群:430089673

概述

MyData 基于数据资产理念设计,采用 Web API 作为数据传输通道 完全不侵入任何业务系统;

API 通常不是简单的调用即可获得结果,需要传递外部的参数才能得到预期结果;

API 的常见场景

  1. 身份验证和授权 类似 Web Token ,先通过认证 API 获取令牌 存储在客户端,随后每次通信都附带令牌;

  2. 参数筛选数据 当调用 API 时,通过参数筛选 准确获取所需数据,例如:员工在职状态、订单支付状态等;

  3. 分批获取数据 当处理大量数据或分页显示数据时,需要分批获取数据,例如:分页参数有 指定页数、每页的数量;

    ...

环境&变量

MyData 提供两层管理:环境管理变量管理

定时任务中使用变量

基于 数据集成之任务流程 介绍任务执行流程,在任务开始与调用 API 之间 增加环境变量的解析处理;

以下是任务执行过程代码片段,其中jobVarService.parseVar(taskInfo);是任务开始后的第一步操作,具体变量的解析处理可详见 JobVarService.java

taskInfo.appendLog("任务开始执行");
...
// 标记本次执行是否成功
boolean isJobSuccess = false;
// 获取任务操作类型
int opType = taskInfo.getOpType();

try {
    // 解析并替换 api 中的环境变量
    jobVarService.parseVar(taskInfo);
    // 根据操作类型 执行读或写
    switch (opType) {
        // 提供数据
        case MdConstant.DATA_PRODUCER:
            ...
            break;
        // 消费数据
        case MdConstant.DATA_CONSUMER:
            ...
            break;
        default:
            throw new RuntimeException("不支持的任务类型:" + opType);
    }

    // 任务执行成功
    isJobSuccess = true;
} catch (Exception e) {
    taskInfo.appendLog("任务执行失败,异常:{}", e.getMessage());
    e.printStackTrace();
} finally {
    // 恢复原生 header 和 param ,恢复变量表达式,下次可获取最新变量值
    taskInfo.setReqHeaders(taskInfo.getOriginReqHeaders());
    taskInfo.setReqParams(taskInfo.getOriginReqParams());
}
873 次点击
所在节点    分享创造
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1024164

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX