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

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

开源地址: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);
    });
}
要训练自己的数据集使用yolov5v1.0,你需要按照以下步骤进行操作: 1. 配置数据集:在yolov5目录下的data文件夹中创建一个mydata.yaml文件,用于存放训练集和验证集的划分文件(train.txt和val.txt)以及目标的类别数目和具体类别列表。你可以根据自己的需求进行自定义命名和配置。\[3\] 2. 生先验框:使用聚类方法生先验框。具体而言,可以使用两种方法来生anchors。\[1\] 3. 运行训练命令:使用以下命令来运行训练过程: ``` python train.py --img 640 --batch 32 --epoch 300 --data data/mydata.yaml --cfg models/yolov5x.yaml --weights weights/yolov5x.pt --device '0,1' ``` 这个命令中的参数可以根据你的需求进行调整,其中`--data`参数指定了数据集的配置文件,`--cfg`参数指定了模型的配置文件,`--weights`参数指定了预训练的权重文件。\[2\] 4. 进行模型测试:在训练完后,你可以使用训练得到的模型进行测试,以评估模型的性能和准确度。 希望以上步骤对你训练自己的数据集使用yolov5v1.0有所帮助。 #### 引用[.reference_title] - *1* [Yolov5训练自己的数据集(详细完整版)](https://blog.csdn.net/qq_45945548/article/details/121701492)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [YOLOv5训练自己的数据集(超详细)](https://blog.csdn.net/qq_40716944/article/details/118188085)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值