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

本文详细介绍了MyData基于WebAPI的数据集成平台中任务调度模式的应用,包括定时周期和订阅选项,以及四种不同的使用场景,如实时性、批量推送和周期性统计。同时提到了如何通过Docker部署和执行订阅任务的代码片段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开源地址: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);
    });
}
项目完整可用,配合压缩包内数据库可直接运行使用。 eclipse+mysql5.7+jdk1.8 功能:推荐引擎利用特殊的信息过滤(IF,Information Filtering)技术,将不同的内容(例如电影、音乐、书籍、新闻、图片、网页等)推荐给可能感兴趣的用户。通常情况下,推荐引擎的实现是通过将用户的个人喜好与特定的参考特征进行比较,并试图预测用户对一些未评分项目的喜好程度。参考特征的选取可能是从项目本身的信息中提取的,或是基于用户所在的社会或社团环境。 根据如何抽取参考特征,我们可以将推荐引擎分为以下四大类: • 基于内容的推荐引擎:它将计算得到并推荐给用户一些与该用户已选择过的项目相似的内容。例如,当你在网上购书时,你总是购买与历史相关的书籍,那么基于内容的推荐引擎就会给你推荐一些热门的历史方面的书籍。 • 基于协同过滤的推荐引擎:它将推荐给用户一些与该用户品味相似的其他用户喜欢的内容。例如,当你在网上买衣服时,基于协同过滤的推荐引擎会根据你的历史购买记录或是浏览记录,分析出你的穿衣品位,并找到与你品味相似的一些用户,将他们浏览和购买的衣服推荐给你。 • 基于关联规则的推荐引擎:它将推荐给用户一些采用关联规则发现算法计算出的内容。关联规则的发现算法有很多,如 Apriori、AprioriTid、DHP、FP-tree 等。 • 混合推荐引擎:结合以上各种,得到一个更加全面的推荐效果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值