分布式任务调度系统及方法技术方案

技术编号:38687294 阅读:11 留言:0更新日期:2023-09-02 23:00
本发明专利技术实施例公开了一种分布式任务调度系统及方法。所述系统包括数据库,用于持久化存储任务队列及任务信息;多个任务调度单元,用于管理并调度任务;多个任务处理单元,用于接收并处理任务调度单元下发的任务,更新任务状态信息。由此,本发明专利技术实施例不需要额外的服务器和中心控制机构,可以在低成本的情况下进行快速部署和维护,设置多个任务调度单元和任务处理单元进行任务调度与处理,增强了系统的稳定性和处理效率。稳定性和处理效率。稳定性和处理效率。

【技术实现步骤摘要】
分布式任务调度系统及方法


[0001]本专利技术涉及计算机领域,更具体地,涉及一种分布式任务调度系统及方法。

技术介绍

[0002]在现代互联网应用中,尤其是在分布式系统中,任务调度系统起着至关重要的作用。目前市场上的任务调度系统主要分为中心化任务调度系统和去中心化任务调度系统两类。现有的中心化任务调度系统可能存在着的单点故障、可扩展性差、性能瓶颈及调度延迟等的缺陷。现有的去中心化调度系统往往部署、配置相对复杂,学习成本较高,定制化开发较为困难,不太适合满足特定业务场景的需求。

技术实现思路

[0003]有鉴于此,本专利技术实施例提供一种分布式任务调度系统及方法,以在低成本的情况下进行快速部署和维护,增强系统的稳定性和处理效率,同时满足特定场景下对于任务状态的查看、失败任务的重试及统计分析的需求,增强用户的使用体验。
[0004]第一方面,本专利技术实时例提供了一种分布式任务调度系统,所述系统包括:
[0005]数据库,用于持久化存储任务队列,所述任务队列包括至少一个任务,所述任务包括任务信息,所述任务信息包括任务类型及任务状态信息;
[0006]多个任务调度单元,用于管理所述任务队列,将所述任务队列中待处理的任务下发至对应的任务处理单元,各所述任务调度单元分别管理同一类任务或不同类任务;
[0007]多个任务处理单元,用于接收所述任务调度单元下发的任务,对所述任务进行分步处理及状态监控,更新所述任务的任务状态信息。
[0008]可选地,所述系统还包括任务接收单元,用于接收待处理任务,并将所述待处理任务发送至所述数据库以形成所述任务队列。
[0009]可选地,所述任务调度单元进一步被配置为响应于所述待处理任务的任务类型满足预定条件,基于调度策略将所述待处理的任务下发至对应的任务处理单元。
[0010]可选地,所述任务处理单元进一步被配置为根据所述任务的任务类型将所述任务分解为至少一个分步子任务,根据各所述分步子任务的依赖关系将各所述分步子任务发送至所述任务处理单元中对应的处理节点进行处理。
[0011]可选地,所述任务处理单元进一步被配置为对处理失败的分步子任务进行重试处理,响应于重试次数超过预定阈值,停止对当前任务的分步处理。
[0012]可选地,所述任务处理单元进一步被配置为对各处理节点的分步子任务的处理状态进行监控,根据所述处理状态更新数据库中对应的任务状态信息,所述任务状态信息包括待处理、处理进度和处理结果中的一种或多种。
[0013]可选地,所述任务调度单元还用于监控所述任务队列中各任务的任务状态信息,对处理失败的任务进行邮件报警。
[0014]可选地,管理同一类任务的多个任务调度单元形成对应类型的任务管理集群;处
理同一类任务的多个任务处理单元形成对应类型的任务处理集群。
[0015]可选地,所述多个任务调度单元基于竞争机制对所述待处理任务进行调度。
[0016]第二方面,本专利技术实施例提供了一种分布式任务调度方法,所述方法包括:
[0017]根据任务队列中的待处理任务的任务类型确定目标任务调度单元,所述任务队列包括至少一个待处理任务,所述待处理任务的信息包括任务类型及任务状态信息;
[0018]通过所述目标任务调度单元将所述待处理任务下发至对应的目标任务处理单元;
[0019]通过所述目标任务处理单元对所述待处理任务进行分步处理和状态监控,以更新所述待处理任务的任务状态信息;
[0020]其中,所述分步处理的步骤具体包括:
[0021]根据所述待处理任务的任务类型将所述待处理任务分解为至少一个分步子任务;
[0022]根据各所述分步子任务的依赖关系将各所述分步子任务发送至所述任务处理单元中对应的处理节点进行处理。
[0023]本专利技术实施例不需要额外的服务器和中心控制机构,实现在低成本的情况下进行快速部署和维护。以异步任务的形式对任务进行分步处理,缩短了任务处理时间,同时减少了用户的等待时间。通过设置多个任务调度及处理单元的冗余,提高了系统的稳定性和处理效率。设置持久化存储的任务队列和任务状态更新机制,以满足某些场景下对任务状态的查看、失败任务的重试以及统计分析等的工作需求,为用户带来更加便捷的使用体验。
附图说明
[0024]通过以下参照附图对本专利技术实施例的描述,本专利技术的上述以及其它目的、特征和优点将更为清楚,在附图中:
[0025]图1是本专利技术实施例的分布式任务调度系统的结构示意图;
[0026]图2是本专利技术实施例的一种任务队列的存储形式示意图;
[0027]图3是本专利技术实施例的另一种任务队列的存储形式示意图;
[0028]图4是本专利技术实施例的一种任务调度方法的流程图;
[0029]图5是本专利技术实施例的分布式任务调度处理方法的流程图;
[0030]图6是本专利技术实施例的一种具体应用场景下的任务调度处理流程图;
[0031]图7是本专利技术实施例的分布式任务调度处理装置的示意图。
具体实施方式
[0032]以下基于实施例对本申请进行描述,但是本申请并不仅仅限于这些实施例。在下文对本申请的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本申请。为了避免混淆本申请的实质,公知的方法、过程、流程、元件和电路并没有详细叙述。
[0033]此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。
[0034]除非上下文明确要求,否则整个申请文件中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
[0035]在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不
能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
[0036]在一些应用软件开发中,会有一些执行时间较长的任务,例如常见的下载任务、提取任务和生成任务等。如果将这些任务放在前端执行,会增加用户的等待时间,带来不好的使用体验。由此,异步任务应运而生,异步任务是相对于同步任务而言的,同步任务是指进入主线程排队、直接被主线程执行的任务,其具有阻塞效果,只有前一个任务执行完毕,才能执行后一个任务。相反,异步任务是指不进入主线程、而进入任务队列的任务,其在执行过程中采用回调函数的形式被执行。在软件开发时,可以将任务放在后台处理,待用户需要查看结果时,点击查看即可,并且可以随时看到任务执行状态。
[0037]本专利技术实施例的任务调度系统是将用户提交的任务预先存储在任务队列中,以异步任务的形式进行调度处理,在具有空闲线程时,对任务队列中的任务进行分步处理,可以缩短任务的处理时间,减少用户的等待时间。本专利技术实施例涉及到的任务主要为耗时较长的任务,例如音视频下载、文案提取、生成图片和生成文本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式任务调度系统,其特征在于,所述系统包括:数据库,用于持久化存储任务队列,所述任务队列包括至少一个任务,所述任务包括任务信息,所述任务信息包括任务类型及任务状态信息;多个任务调度单元,用于管理所述任务队列,将所述任务队列中待处理的任务下发至对应的任务处理单元,各所述任务调度单元分别管理同一类任务或不同类任务;多个任务处理单元,用于接收所述任务调度单元下发的任务,对所述任务进行分步处理及状态监控,更新所述任务的任务状态信息。2.根据权利要求1所述的系统,其特征在于,所述系统还包括任务接收单元,用于接收待处理任务,并将所述待处理任务发送至所述数据库以形成所述任务队列。3.根据权利要求1所述的系统,其特征在于,所述任务调度单元进一步被配置为响应于所述待处理任务的任务类型满足预定条件,基于调度策略将所述待处理的任务下发至对应的任务处理单元。4.根据权利要求1所述的系统,其特征在于,所述任务处理单元进一步被配置为根据所述任务的任务类型将所述任务分解为至少一个分步子任务,根据各所述分步子任务的依赖关系将各所述分步子任务发送至所述任务处理单元中对应的处理节点进行处理。5.根据权利要求4所述的系统,其特征在于,所述任务处理单元进一步被配置为对处理失败的分步子任务进行重试处理,响应于重试次数超过预定阈值,停止对当前任务的分步处理。6.根据权利要求4所述的系统,...

【专利技术属性】
技术研发人员:赵玉亮祝建平林士翔
申请(专利权)人:上海墨百意信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1