[自研开源] MyData 数据集成之任务调度模式 v0.7

2024-03-21 07:28

本文主要是介绍[自研开源] MyData 数据集成之任务调度模式 v0.7,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

开源地址:gitee | github

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

部署文档:用 Docker 部署 MyData

使用手册:MyData 使用手册

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

交流 Q 群:430089673

概述

本篇基于 数据集成之任务流程 介绍任务调度模式的使用场景和配置操作。

任务调度模式

mydata 使用 API 方式集成、无 SDK 侵入,当业务系统与 mydata 集成时,不同业务数据的同步频率存在差异,因此对 API 的调用频率需要贴合业务场景;

集成任务的调度模式如下图:

在这里插入图片描述

  1. 从 API 获取数据 即提供数据类型的任务目前只有定时周期方式,配置方式如下图:
    在这里插入图片描述

  2. 向 API 发送数据 即消费数据类型的任务 可选择是否订阅

    • 选择订阅 表示当数据发送变化时 才向 API 推送数据,其他时间不会调用;
      在这里插入图片描述

    • 选择不订阅 则采用前面相同的定时周期模式,需要选择周期;
      在这里插入图片描述

使用场景

根据采集周期间隔长短推送是否订阅可以组合成 4 种模式:短周期采集 + 订阅推送短周期采集 + 长周期推送长周期采集 + 订阅推送长周期采集 + 长周期推送

注:以下示例仅供参考

  1. 短周期采集 + 订阅推送,适用于实时性较高的场景;

    例如:订单与仓储,用户在线下单后“立即”同步到仓储系统,以便仓库出货;

    在这里插入图片描述

    1. 用户在商城平台下单购买商品;
    2. 订单系统生成订单记录,包括商品信息、收货地址的等;
    3. MyData 每分钟采集任务 从订单系统 API 获取订单记录;
    4. MyData 向订阅订单数据的仓储系统 API 推送本次获取的数据;
  2. 短周期采集 + 长周期推送,适用于集中采集、批量推送的场景;

    例如:仓储与物流,仓储完成一部分出货打包后 批量同步到物流系统,以便物流上门取货;

    在这里插入图片描述

  3. 长周期采集 + 订阅推送,适用于阶段性采集汇总并立即推送的场景;

    例如:商品销量统计与热门商品,每隔数小时 获取商品销量统计数据,立即同步到商城更新热门商品数据;

    在这里插入图片描述

  4. 长周期采集 + 长周期推送,适用于周期性汇总统计,长周期推送的场景;

    例如:商家统计与数据分析,每隔 1 天 获取商家统计数据,再每个 2 天 将统计数据同步到数据分析系统;
    在这里插入图片描述

执行订阅任务

  1. 根据提供数据任务的数据项,查询订阅相同数据项的任务;
  2. 批量执行,并传入业务数据;
/*** 执行订阅任务** @param taskInfo 当前执行的任务*/
public void executeSubscribedTask(TaskInfo taskInfo) {// 当前任务不是 提供数据,则结束if (MdConstant.DATA_PRODUCER != taskInfo.getOpType()) {return;}List<Map> produceDataList = taskInfo.getProduceDataList();if (CollUtil.isEmpty(produceDataList)) {return;}// 查询相同数据的订阅任务List<Task> subTasks = taskService.listRunningSubTasks(taskInfo.getDataId());subTasks.forEach(task -> {TaskInfo subTaskInfo = build(task);// 订阅任务现在执行subTaskInfo.setStartTime(new Date());// 向订阅任务传入数据subTaskInfo.setConsumeDataList(produceDataList);// 指定订阅任务,调用接口发送数据executeJob(subTaskInfo);});
}

这篇关于[自研开源] MyData 数据集成之任务调度模式 v0.7的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/832077

相关文章

Debezium 与 Apache Kafka 的集成方式步骤详解

《Debezium与ApacheKafka的集成方式步骤详解》本文详细介绍了如何将Debezium与ApacheKafka集成,包括集成概述、步骤、注意事项等,通过KafkaConnect,D... 目录一、集成概述二、集成步骤1. 准备 Kafka 环境2. 配置 Kafka Connect3. 安装 D

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2

Redis的数据过期策略和数据淘汰策略

《Redis的数据过期策略和数据淘汰策略》本文主要介绍了Redis的数据过期策略和数据淘汰策略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录一、数据过期策略1、惰性删除2、定期删除二、数据淘汰策略1、数据淘汰策略概念2、8种数据淘汰策略

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

Java实现状态模式的示例代码

《Java实现状态模式的示例代码》状态模式是一种行为型设计模式,允许对象根据其内部状态改变行为,本文主要介绍了Java实现状态模式的示例代码,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来... 目录一、简介1、定义2、状态模式的结构二、Java实现案例1、电灯开关状态案例2、番茄工作法状态案例

Python给Excel写入数据的四种方法小结

《Python给Excel写入数据的四种方法小结》本文主要介绍了Python给Excel写入数据的四种方法小结,包含openpyxl库、xlsxwriter库、pandas库和win32com库,具有... 目录1. 使用 openpyxl 库2. 使用 xlsxwriter 库3. 使用 pandas 库

SpringBoot定制JSON响应数据的实现

《SpringBoot定制JSON响应数据的实现》本文主要介绍了SpringBoot定制JSON响应数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录前言一、如何使用@jsonView这个注解?二、应用场景三、实战案例注解方式编程方式总结 前言

使用Python在Excel中创建和取消数据分组

《使用Python在Excel中创建和取消数据分组》Excel中的分组是一种通过添加层级结构将相邻行或列组织在一起的功能,当分组完成后,用户可以通过折叠或展开数据组来简化数据视图,这篇博客将介绍如何使... 目录引言使用工具python在Excel中创建行和列分组Python在Excel中创建嵌套分组Pyt

在Rust中要用Struct和Enum组织数据的原因解析

《在Rust中要用Struct和Enum组织数据的原因解析》在Rust中,Struct和Enum是组织数据的核心工具,Struct用于将相关字段封装为单一实体,便于管理和扩展,Enum用于明确定义所有... 目录为什么在Rust中要用Struct和Enum组织数据?一、使用struct组织数据:将相关字段绑

在Mysql环境下对数据进行增删改查的操作方法

《在Mysql环境下对数据进行增删改查的操作方法》本文介绍了在MySQL环境下对数据进行增删改查的基本操作,包括插入数据、修改数据、删除数据、数据查询(基本查询、连接查询、聚合函数查询、子查询)等,并... 目录一、插入数据:二、修改数据:三、删除数据:1、delete from 表名;2、truncate