学成在线(视频处理-需求分析:xxl-job)

news2025/1/12 20:55:18

需求分析

作业分片方案

  • 任务添加成功后,对于要处理的任务,会添加到待处理任务表中,现在启动多个执行器实例去查询这些待处理任务,此时如何保证多个执行器不会重复执行任务?
  • 在上一小节的测试中,每个执行器收到广播任务有两个参数,分片序号和分片总数
    • 每个执行器从数据表取任务时,可以用任务id分片总数,如果等于该执行器的分片序号,则执行此任务
    • 例如
      • 1 % 2 = 1,执行器2执行
      • 2 % 2 = 0,执行器1执行
      • 3 % 2 = 1,执行器2执行
      • 4 % 2 = 1,执行器1执行
      • 以此类推

 

保证任务不重复执行

  • 通过作业分片方案,保证了执行器之间分配的任务不重复执行
  • 但是如果同一个执行器,在处理一个视频的时候,还没有处理完,此时调度中心又来了一次请求调度,为了不重复处理同一个视频,该怎么办?
  • 首先配置调度过期策略
    • 调度过期策略:
      • 忽略:调度过期后,忽略过期的任务,从当前时间开始重新计算下次触发时间;
      • 立即执行一次:调度过期后,立即执行一次,并从当前时间开始重新计算下次触发时间;
  • 这里我们选择忽略,如果立即执行一次,可能会重复调度
  • 其次,我们在看阻塞处理策略。
  • 阻塞处理策略就是当前执行器正在执行任务还没有结束时,调度中心又请求调度,此时该如何处理
    • 阻塞处理策略:调度过于密集执行器来不及处理时的处理策略;
      • 单机串行(默认):调度请求进入单机执行器后,调度请求进入FIFO队列并以串行方式运行;
      • 丢弃后续调度:调度请求进入单机执行器后,发现执行器存在运行的调度任务,本次请求将会被丢弃并标记为失败;
      • 覆盖之前调度:调度请求进入单机执行器后,发现执行器存在运行的调度任务,将会终止运行中的调度任务并清空队列,然后运行本地调度任务;
  • 这里选择丢弃后续调度,避免重复调度
  • 最后,也就是要注意保证任务处理的幂等性,什么是任务的幂等性
    • 任务的幂等性是指:对于数据的操作不论多少次,操作的结果始终是一致的。
  • 执行器接收调度请求去执行任务,要有办法去判断该任务是否处理完成,如果处理完则不再处理,即使重复调度处理相同的任务也不能重复处理相同的视频。
  • 什么是幂等性?
    • 它描述了一次和多次请求某一个资源,对于资源本身应该具有相同的结果
  • 幂等性是为了解决重复提交问题,比如:恶意刷单、重复支付等
  • 解决幂等性常用的方案
    1. 数据库约束,例如:唯一索引、主键
    2. 乐观锁,长用户数据库,更新数据时根据乐观锁状态去更新
    3. 唯一序列号,操作传递一个唯一序列号,操作时判断与该序列号相等,则执行
  • 这里我们在数据库视频处理表中添加状态处理字段,视频处理完成更新状态为完成,执行视频前判断状态是否完成,如果完成则不再处理

业务流程

  • 确定了分片方案,下面梳理哼歌视频上传以及处理的业务流程
  • 上传视频成功,向视频待处理表中添加记录,视频处理的详细流程如下

 

 

  1. 任务调度中心广播作业分片
  2. 执行器收到广播作业分片,从数据库读取待处理任务
  3. 执行器根据任务内容MinIO下载要处理的文件
  4. 执行器启动多线程去处理任务
  5. 任务处理完成,上传处理后的视频到MinIO
  6. 将更新任务处理结果,如果视频处理完成,除了更新任务处理结果之外,还要将文件的访问地址更新至任务处理表及文件中,最后将任务完成记录写入历史表
  • 下面是待处理任务表

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/601848.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VMware ESXi 8.0U1a Unlocker OEM BIOS 集成网卡驱动和 NVMe 驱动 (集成驱动版)

VMware ESXi 8.0 Update 1a Unlocker & OEM BIOS 集成网卡驱动和 NVMe 驱动 (集成驱动版) 发布 ESXi 8.0U1 集成驱动版,在个人电脑上运行企业级工作负载 请访问原文链接:https://sysin.org/blog/vmware-esxi-8-u1-sysin/,查看最新版。原…

手动上传海豚调度器资源中心的文件,解决dolphinscheduler资源中心上传大一点jar包的bug问题

手动上传海豚调度器资源中心的文件 1. 登录hdfs的任意服务器节点上传文件 注意:切换hdfs用户 su hdfs2. 上传文件资源到ds的资源中心(hdfs上的资源目录) 这里示例目录是:/dolphinscheduler/root/resources/gwmDs/demo-shell 示…

客服端向服务端发布、订阅、取消

这里写目录标题 PUBLISH – 发布消息SUBSCRIBE – 订阅主题SUBACK – 订阅确认UNSUBSCRIBE – 取消订阅 PUBLISH – 发布消息 MQTT客户端一旦连接到服务端,便可以发布消息。 每条发布的MQTT消息必须包含一个主题。MQTT服务器可以通过主题确定将消息转发给哪些客户端…

ES教程:从入门到入土

文章目录 一、环境准备1. ES安装 二、基本概念2.1 节点(Node)Master-eligible nodes与 Master nodeData NodeIngest NodeCoordinating NodeMachine Learning Node 2.2 集群(cluster)2.3 分片(Shard)2.4 副本…

linux0.12-12-fs

[606页] 第12章 文件系统 606–12-1-总体功能 607–12-1-1-MINIX文件系统 611–12-1-2-文件类型、属性和目录项 615–12-1-3-高速缓冲区 616–12-1-4-文件系统底层函数 616–12-1-5-文件中数据的访问操作 618–12-1-6-文件和目录管理系统调用 619–12-1-7-360KB软盘中文件系统…

openGauss DBMind上的多指标关联性分析介绍

背景 随着互联网的发展,今天的数据库系统往往非常庞大且复杂,针对数据库系统的运维工作需要监控大量数据指标来了解数据库的运行状况。数据库指标往往以时间序列的方式出现,当业务层面关键指标出现异常时,运维人员需要迅速定位异…

对大量日志导致Java后端某些类加载错误问题记录

对大量日志产生导致Java后端某些类加载错误问题记录 报错问题: java.lang.IllegalArgumentException: Name for argument type [java.lang.String] not available, and parameter name information not found in class file either. org.springframework.util.Ass…

C语言关键字sizeof 与strlen

sizeof() sizeof操作数所占空间的字节数大小&#xff0c;是一种c中的基本运算符。 可以以类型、指针、数组和函数等作为参数。 返回值类型为unsigned int 运算值在编译的时候就出结果&#xff0c;所以可以用来定义数组维数。 1. #include<stdio.h> 2. // sizeof 关键字…

数据结构的基本概念

数据结构概念 1.数据&#xff1a;所有能输入计算机且能被计算机处理的符号总称 2.数据元素&#xff1a;是数据的基本单位&#xff0c;表示数据集合中的一个个体。 3 .数据项&#xff1a;数据元素中有独立含义的最小单位。 数据结构&#xff1a;相互之间存在一定关系的数据元素的…

YYDS练手 130道python练习题 完整版PDF

近年来&#xff0c;Python在编程语言界里赚足了风头&#xff0c;无论是受欢迎程度&#xff0c;还是薪资待遇&#xff0c;都非常可观&#xff0c;相应的&#xff0c;Python岗位要求也越来越高&#xff0c;无论你是零基础还是老前辈&#xff0c;在Python面试中都不能轻视。 不打…

MPLS-VPN实验

1、拓扑 2、需求&#xff1a; pc1通过vpn访问pc2 3、配置思路 第一步&#xff1a;配置接口地址 第二步&#xff1a;配置ospf 第三步&#xff1a;配置bgp 第四步&#xff1a;配置mpls 第五步&#xff1a;配置VRF -创建VRF -开启 ipv4-family -接口加入VRF -给接口重新配置…

挂在网盘到本地磁盘(以中移动云盘为例)

发现百度网盘速度越来越慢&#xff0c;因此我想怎么讲百度网盘中300多个G的文件同步到移动云中&#xff0c;因此就有了这一步的探索。 利用Alist将中国移动网盘挂载到本地磁盘 解压Alist工具包&#xff0c;运行里面的alist-xxxx.exe文件&#xff0c;启动过程如下&#xff1a; …

图扑虚拟现实 VR 智慧办公室可视化

前言 “虚拟现实”是来自英文“Virtual Reality”&#xff0c;简称 VR 技术&#xff0c;其是通过利用计算机仿真系统模拟外界环境&#xff0c;主要模拟对象有环境、技能、传感设备和感知等&#xff0c;为用户提供多信息、三维动态、交互式的仿真体验。 效果展示 图扑软件基于…

JS - DangerJs运用

JS - DangerJs运用 前言一. 前期准备1.1 创建私有 Token1.2 Git 设置对应的 Token 以及 Host 环境变量1.3 项目安装 dangerJs 二. 测试 前言 在开源社区中&#xff0c;DangerJs可以拿来自动判断每个人提交的代码合并请求&#xff08;github中叫Pull Request&#xff0c;简称PR…

(学习日记)2023.04.24

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…

MKS SERVO4257D 闭环步进电机_系列1 产品简述

第1部分 产品概述 1.1 产品介绍 MKS SERVO 28D/35D/42D/57D 系列闭环步进电机是创客基地为满足市场需求而自主研发的一款产品。具备脉冲接口&#xff0c;RS485接口和CAN接口&#xff0c;内置高效FOC矢量算法&#xff0c;采用高精度编码器&#xff0c;通过位置反馈&#xff0c…

C语言—文件操作

文件操作 什么是文件文件的打开和关闭文件指针文件的打开和关闭fopenfclose 文件的顺序读写fputcfgetcfputsfgetsfprintffscanffwritefread经典面试题sscanfsprintf 文件的随机读写fseekftellrewind 文本文件和二进制文件文件读取结束的判定文件缓冲区 前言 在写完通讯录的程序…

Android 14新功能全面概述

Android 14有什么新功能&#xff1a;全面概述 Android 14带来了大量的新功能和更新&#xff0c;从前台服务和闹钟的改进到语法屈折和字体缩放&#xff0c;Android 14为每位开发者都提供了一些东西。我在下面列出了一些最重要的更改。让我们深入探讨一下这个最新版本的新功能。 …

Patcher:用于精确医学图像分割的混合专家patch Transformers

文章目录 Patcher: Patch Transformers with Mixture of Experts for Precise Medical Image Segmentation摘要本文方法patcher块Mixture of Experts Decoder 实验结果 Patcher: Patch Transformers with Mixture of Experts for Precise Medical Image Segmentation 摘要 提…

内存泄漏检测工具Valgrind:C++代码问题检测的利器

Valgrind&#xff1a;C代码问题检测的利器 一、引言&#xff08;Introduction&#xff09;1.1 Valgrind的定义与功能&#xff08;What is Valgrind and its functions&#xff09;1.2 Valgrind的重要性&#xff08;The importance of Valgrind&#xff09;1.3 Valgrind的应用场…