计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
弹性伸缩 AS
镜像服务 IMS
专属主机 DeH
函数工作流 FunctionGraph
云手机服务器 CPH
Huawei Cloud EulerOS
网络
虚拟私有云 VPC
弹性公网IP EIP
虚拟专用网络 VPN
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
VPC终端节点 VPCEP
云连接 CC
企业路由器 ER
企业交换机 ESW
全球加速 GA
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
边缘安全 EdgeSec
态势感知 SA
威胁检测服务 MTD
CDN与智能边缘
内容分发网络 CDN
CloudPond云服务
智能边缘云 IEC
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
云搜索服务 CSS
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
数据可视化 DLV
数据湖工厂 DLF
湖仓构建 LakeFormation
企业应用
云桌面 Workspace
应用与数据集成平台 ROMA Connect
云解析服务 DNS
专属云
专属计算集群 DCC
IoT物联网
IoT物联网
设备接入 IoTDA
智能边缘平台 IEF
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
国际站常见问题
ICP备案
我的凭证
支持计划
客户运营能力
合作伙伴支持计划
专业服务
区块链
区块链服务 BCS
Web3节点引擎服务 NES
解决方案
SAP
高性能计算 HPC
视频
视频直播 Live
视频点播 VOD
媒体处理 MPC
实时音视频 SparkRTC
数字内容生产线 MetaStudio
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
存储容灾服务 SDRS
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
专属分布式存储服务 DSS
容器
云容器引擎 CCE
容器镜像服务 SWR
应用服务网格 ASM
华为云UCS
云容器实例 CCI
管理与监管
云监控服务 CES
统一身份认证服务 IAM
资源编排服务 RFS
云审计服务 CTS
标签管理服务 TMS
云日志服务 LTS
配置审计 Config
资源访问管理 RAM
消息通知服务 SMN
应用运维管理 AOM
应用性能管理 APM
组织 Organizations
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
应用身份管理服务 OneAccess
数据库
云数据库 RDS
文档数据库服务 DDS
数据管理服务 DAS
数据复制服务 DRS
云数据库 GeminiDB
云数据库 GaussDB
分布式数据库中间件 DDM
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
人脸识别服务 FRS
图引擎服务 GES
图像识别 Image
内容审核 Moderation
文字识别 OCR
AI开发平台ModelArts
图像搜索 ImageSearch
对话机器人服务 CBS
华为HiLens
视频智能分析服务 VIAS
语音交互服务 SIS
应用中间件
分布式缓存服务 DCS
API网关 APIG
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
多活高可用服务 MAS
事件网格 EG
企业协同
华为云会议 Meeting
云通信
消息&短信 MSGSMS
云生态
合作伙伴中心
云商店
开发者工具
SDK开发指南
API签名指南
Terraform
华为云命令行工具服务 KooCLI
其他
产品价格详情
系统权限
管理控制台
客户关联华为云合作伙伴须知
消息中心
公共问题
开发与运维
应用管理与运维平台 ServiceStage
软件开发生产线 CodeArts
需求管理 CodeArts Req
部署 CodeArts Deploy
性能测试 CodeArts PerfTest
编译构建 CodeArts Build
流水线 CodeArts Pipeline
制品仓库 CodeArts Artifact
测试计划 CodeArts TestPlan
代码检查 CodeArts Check
代码托管 CodeArts Repo
云应用引擎 CAE
开天aPaaS
云消息服务 KooMessage
云手机服务 KooPhone
云空间服务 KooDrive
本文导读
文档首页/ 数据治理中心 DataArts Studio/ 最佳实践/ 数据开发进阶实践/ 离散小时调度与作业最近依赖调度逻辑

离散小时调度与作业最近依赖调度逻辑

更新时间:2024-08-30 GMT+08:00

数据开发当前支持两种调度依赖策略:传统周期调度依赖和自然周期调度依赖。

传统周期调度依赖的详细信息请参见传统周期调度

自然周期调度依赖的详细信息请参见自然周期调度

随着用户业务的演进,自然周期调度中,增加了许多新的调度规则,如离散小时调度,最近依赖调度等。本章节详细讲解这两个调度规则。

离散小时调度

场景一:离散小时依赖月、周、天 ,或者月、周、天依赖离散小时, 这六种依赖,依赖的时间范围都是依赖自然天内的所有作业实例。

表1 离散小时调度依赖逻辑一

场景

依赖处理逻辑

离散小时依赖月

依赖时间段范围是[当天的零点,下一天的零点) 这个时间段的作业实例是否跑成功。区间段范围是前闭后开。

示例一:作业A是离散小时调度,调度时间分别是2/5/15点;作业B是月调度,每月3号12点调度。A依赖B,假设今天是每月3号, 作业A在2点、5点、15点的实例,都会依赖作业B在12点的实例,等到作业B在12点的实例执行成功后,才会执行作业A的实例。

示例二:作业是A离散小时调度,调度时间分别是2/5/15点;作业B是月调度,每月3号12点调度。A依赖B,假设今天不是每月的3号,即今天没有作业B的实例,则因为依赖的作业B在今天没有实例,作业A在2点、5点、15点的实例会直接运行。

月依赖离散小时

依赖时间段范围是[当天的零点,下一天的零点) 这个时间段的作业实例是否跑成功。区间段范围是前闭后开。

示例:作业A是离散小时调度,调度时间分别是2/5/15点;作业B是月调度,每月3号12点调度。B依赖A,当作业B在每月3号调度时,作业B在12点的实例,会等依赖的作业A在2/5/15点的实例,都执行成功后,才会开始调度。

离散小时依赖周

依赖时间段范围是[当天的零点,下一天的零点) 这个时间段的作业实例是否跑成功。区间段范围是前闭后开。

示例一:作业A是离散小时调度,调度时间分别是2/5/15点;作业B是周调度,每周星期一12点调度。A依赖B,假设今天是每周星期一,作业A在2点、5点、15点的实例,都会依赖作业B在12点的实例,等到作业B在12点的实例执行成功后, 才会执行作业A的实例。

示例二:作业A是离散小时调度,调度时间分别是2/5/15点;作业B是周调度,每周星期一12点调度。A依赖B,假设今天不是星期一,即今天没有作业B的实例, 则因为依赖的作业B在今天没有实例,作业A在2点、5点、15点的实例会直接运行。

周依赖离散小时

依赖时间段范围是[当天的零点,下一天的零点) 这个时间段的作业实例是否跑成功。区间段范围是前闭后开。

示例:作业A是离散小时调度,调度时间分别是2/5/15点;作业B是周调度,每周星期一12点调度。B依赖A,当作业B在星期一调度时,作业B在12点的实例,会等依赖的作业A在2/5/15点的实例,都执行成功后,才会开始调度。

离散小时依赖天

依赖时间段范围是[当天的零点,下一天的零点) 这个时间段的作业实例是否跑成功。区间段范围是前闭后开。

示例:作业A是离散小时调度,调度时间分别是2/5/15点;作业B是天调度,每天12点调度。A依赖B,则作业A在2点、5点、15点的实例,都会依赖作业B在12点的实例,等到作业B在12点的实例执行成功后,才会执行作业A的实例。

天依赖离散小时

依赖时间段范围是[当天的零点,下一天的零点) 这个时间段的作业实例是否跑成功。区间段范围是前闭后开。

示例:作业A是离散小时调度,调度时间分别是2/5/15点;作业B是天调度,每天12点调度。B依赖A,则作业B在12点的实例,会等依赖的作业A在2/5/15点的实例,都执行成功后,才会开始调度。

场景二:离散小时依赖小时、分钟、离散小时, 或者小时、分钟依赖离散小时,依赖都遵循如下规则。

  • 规则一:自然天内,依赖关系中的上游、下游任务数量一致,则上游、下游一对一依赖。

    解释:例如作业A依赖作业B,作业A是离散小时调度,每天3/6/8点运行,则作业A一天内有3个实例;作业B小时作业,间隔8小时调度一次,每天0点、8点、16点调度,则作业B一天也是3个实例。

    上游作业B与下游作业A在一天内,都是3个实例,则作业A与作业B一对一依赖。

    所以作业A与作业B的依赖情况为: 作业A在3点的实例,依赖作业B在0点的实例;作业A在6点的实例,依赖作业B在8点的实例;作业A在8点的实例,依赖作业B在 16点的实例。

  • 规则二:自然天内,上下游任务数量不一致,下游任务运行当天生成的周期实例,将会根据就近原则挂载依赖,依赖距离自己定时运行时间最近的上游实例。

    先向前找上游依赖实例,依赖上游一整个区间内的实例;向前未找到依赖的实例时,需要向后找,向后查找时,只依赖最近的一个实例。

    通过图表进一步进行原理解释:

    “先向前找上游依赖实例,依赖上游一整个区间内的实例” 解释如下:

    图1 先向前找上游依赖实例,依赖上游一整个区间内的实例

    “向前未找到依赖的实例时,需要向后找,向后查找时,只依赖最近的一个实例” 解释如下:

    图2 向前未找到依赖的实例时,需要向后找,向后查找时,只依赖最近的一个实例
表2 离散小时调度依赖逻辑二

场景

依赖处理逻辑

离散小时依赖小时

依赖时间段范围是[当天的零点,下一天的零点) ,离散小时作业A,小时作业B,作业A依赖作业B。

当离散小时作业A、小时作业B在一天内的实例数量一致时,适用规则一,一对一依赖;

当离散小时作业A、小时作业B在一天内的实例数量不一致,适用规则二,向前就近找一整个区间的上游实例依赖;未找到,向后找最近的一个实例依赖。

小时依赖离散小时

依赖时间段范围是[当天的零点,下一天的零点) ,小时作业A,离散小时作业B,作业A依赖作业B。

当小时作业A、离散小时作业B在一天内的实例数量一致时,适用规则一,一对一依赖;

当小时作业A、离散小时作业B在一天内的实例数量不一致,适用规则二,向前就近找一整个区间的上游实例依赖;未找到,向后找最近的一个实例依赖。

离散小时依赖分钟

依赖时间段范围是[当天的零点,下一天的零点) ,离散小时作业A,分钟作业B,作业A依赖作业B。

当离散小时作业A、分钟作业B在一天内的实例数量一致时,适用规则一,一对一依赖;

当离散小时作业A、分钟作业B在一天内的实例数量不一致,适用规则二,向前就近找一整个区间的上游实例依赖;未找到,向后找最近的一个实例依赖。

分钟依赖离散小时

依赖时间段范围是[当天的零点,下一天的零点) ,分钟作业A,离散小时作业B,作业A依赖作业B。

当分钟作业A、离散小时作业B在一天内的实例数量一致时,适用规则一,一对一依赖;

当分钟作业A、离散小时作业B在一天内的实例数量不一致,适用规则二,向前就近找一整个区间的上游实例依赖;未找到,向后找最近的一个实例依赖。

离散小时依赖离散小时

依赖时间段范围是[当天的零点, 下一天的零点) ,离散小时作业A,离散小时作业B,作业A依赖作业B。

当离散小时作业A、离散小时作业B在一天内的实例数量一致时,适用规则一,一对一依赖;

当离散小时作业A、离散小时作业B在一天内的实例数量不一致,适用规则二,向前就近找一整个区间的上游实例依赖;未找到,向后找最近的一个实例依赖。

最近依赖调度

最近依赖调度,是在自然周期调度的基础上,对于天依赖小时、天依赖分钟、小时依赖分钟这三种依赖场景,支持选择依赖最近的作业实例。

表3 最近依赖调度

场景

依赖处理逻辑

天依赖小时(勾选最近依赖)

依赖时间段范围是[当天的零点,下一天的零点) ,不可跨天。

示例一:天作业A每天8点调度;小时作业B每小时15分钟开始调度。则天作业A依赖最近的小时作业实例,即依赖7点15分的小时作业实例。

示例二:天作业A每天0点30分调度;小时作业B每小时40分钟开始调度。因为天作业前面没有小时任务,则天任务不依赖任何小时任务,直接运行。

天依赖分钟(勾选最近依赖)

依赖时间段范围是[当天的零点, 下一天的零点) ,不可跨天。

小时依赖分钟(勾选最近依赖)

往前找到最近的分钟任务,挂载依赖。

示例:小时作业A每小时15分钟开始调度;分钟作业B从凌晨一点开始每15分钟调度一次。则小时作业A在0点15分的实例,依赖分钟作业B在昨天23点45分的实例;小时作业A在1点15分的实例,依赖分钟作业B在1点15分的实例。

我们使用cookie来确保您的高速浏览体验。继续浏览本站,即表示您同意我们使用cookie。 详情

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容