可编排的插件的分布式任务调度方法和装置制造方法及图纸

技术编号:39174503 阅读:13 留言:0更新日期:2023-10-27 08:22
本发明专利技术提供了一种可编排的插件的分布式任务调度方法包括:加载业务功能插件,部署启动业务服务。加载任务配置信息。获取分布式锁。从数据库中加载对应的任务信息并缓存。分布式设置执行器服务且部署执行器服务。根据相应环节来编排相应的任务执行信息。通过调度器服务来定时加载任务信息。按照预设的调度策略,通过异步负载来请求相应的执行器服务,且统一记录执行日志。监控任务调度的总执行情况。监控单次任务调度的各个环节的执行情况。本发明专利技术能实现插件式加载无需增加额外的运维成本,且具备可编排和分布式调度能力,能够结合现有的微服务体系,进而提高执行的效率和服务器的运行性能,以保证对应调度任务即时高效的运行。以保证对应调度任务即时高效的运行。以保证对应调度任务即时高效的运行。

【技术实现步骤摘要】
可编排的插件的分布式任务调度方法和装置


[0001]本申请涉及分布式任务调度,特别地,涉及分插件的分布式调度。

技术介绍

[0002]目前的企业信息化系统,从需求层面来说,很多场景都是需要按照固定的策略定时执行某一种逻辑或者多种组合逻辑。而实际开发过程中,由于种种原因,此类需求的实现方式也不尽相同。
[0003]在现有技术中,一方面,单体服务形式的注解式开发,每次修改策略或者增加新的策略都需要重启服务才能生效,这样不仅影响功能的上线时间,而且也容易对系统业务造成影响。另一方面,现有技术使用开源产品,整个调度任务自成体系,无法与现有服务融合在一起,增加额外的学习成本和运维成本。随着微服务化和云原生的兴起,业务量剧增的同时,又对任务调度类功能提出了的新的要求。
[0004]为此,亟需一种冷量分配策略来解决现有技术之缺陷。

技术实现思路

[0005]本专利技术之目的在于提供一种可编排的插件的分布式任务调度方法和装置,能实现插件式加载无需增加额外的运维成本,且具备可编排和分布式调度能力,能够结合现有的微服务体系,进而提高执行的效率和服务器的运行性能,以保证对应调度任务即时高效的运行。
[0006]为实现上述目的,本专利技术提供一种可编排的插件的分布式任务调度方法,其包括:步骤S1:加载相应业务功能的插件,部署及启动相应业务服务。步骤S2:业务服务启动时,加载相应的任务配置信息。并且,通过当前服务的服务名称和ip端口来获取分布式锁。步骤S3:成功获取分布式锁后,当前服务定时从相应数据库中加载对应的任务信息并缓存。当前服务为调度器服务。步骤S4:分布式设置执行器服务且部署执行器服务。统一注册执行器服务于统一注册中心。步骤S5:在相应的管理界面下,根据相应环节来编排相应的任务执行信息。步骤S6:通过调度器服务来定时加载任务信息。按照预设的调度策略,通过异步负载来请求相应的执行器服务,且统一记录相应的执行日志。步骤S7:通过管理界面来监控任务调度的总执行情况。监控单次任务调度的各个环节的执行情况。
[0007]在本专利技术的方法中,步骤S1包括,当接收到加载类请求时,通过插件类加载器来加载相应类型的类实例:若类的类型为系统类,则将相应类委托给系统加载模块来加载。若类的类型为插件引擎,则通过当前的插件类加载器来进行实例加载。并且,若当前插件类加载器无法加载该类,则将该类委托给插件类加载器的插件依赖项。插件依赖项记录了相应加载器的父类加载器,当前插件类加载器通过插件依赖项将该类加载委托给父类加载器。并且,使用父级优先参数插件类加载器来改变加载策略。
[0008]在本专利技术的方法中,步骤S2包括,业务服务启动时,加载相应业务功能的插件及监听相应的启动成功事件,以及获取当前服务的服务名称。并且,从相应数据库中查询相应服
务名称关联的调度任务数据,进而绑定当前服务的服务名称和ip端口,且将服务名称和ip端口存储在缓存中。通过当前服务的服务名称和ip端口来获取相应的分布式锁。
[0009]在本专利技术的方法中,步骤S4包括:启动执行器服务,且执行器服务将相应执行器微服务的数据注册至注册中心。执行器微服务的数据包括执行器微服务的地址、标识和名称。执行器服务注册的同时,调度器服务通过注册中心获取用于后续调度通信的执行器服务列表。
[0010]在本专利技术的方法中,步骤S5包括:调用流程接口且根据流程信息来获取相应的流程配置。根据相应的流程配置来获取全部流转节点的信息,以及对本次流转节点执行涉及的信息流转的数据进行序列化存储。信息流转的数据包括流转节点和相应的流转传递关系。每个流转节点执行前或后,判断是否配置有相应事件。并且,若存在相应事件则执行相应事件。若相应流转节点包含非人工环节,则根据相应的流转节点的后续流转传递关系来顺次执行该非人工环节相应的事务操作,直至返回客户端数据。若相应流转节点包含人工环节,则自动执行或手动执行该人工环节的相应事件的预设配置。任务流程编排完毕后,设置任务的调度信息。任务的调度信息包含名称、类型、生效时间和预设的调度策略。
[0011]在本专利技术的方法中,根据相应的流程配置来获取全部流转节点的信息包括:配置包含路径表达式的脚本,通过路径表达式来获取信息流转的数据,以及通过该脚本来判断流转节点之间的流转传递关系。
[0012]在本专利技术的方法中,自动执行或手动执行该人工环节的相应事件的预设配置包括:若为自动执行该人工环节的相应事件的预设配置,则根据后续流转关系顺次执行该人工环节相应的事务操作,直至返回客户端数据。若为手动执行该人工环节的相应事件的预设配置,则进行相应流程基于角色的流转及权限的判定,且进行相应流程是否满足基于角色运转及逻辑关系运转的并行执行的判定。
[0013]在本专利技术的方法中,步骤S6包括:调度器服务定时查询数据库中的调度任务信息,若存在新增的调度任务信息,则根据当前调度器服务的所有绑定的调度任务的数量来判断,选取最少调度任务的调度器服务来执行该新增的调度任务,并注册相应调度器服务的分布式锁。根据调度信息所配置的表达式来执行调度任务,以及通过具备负载能力的用于访问的Rest服务的客户端来请求相应的流程服务。相应的执行器服务接受到客户端的请求后,按照配置的流程来执行相应的流程服务。
[0014]在本专利技术的方法中,步骤S7包括:监控存储记录的相应任务调度的所属调度器服务、所属执行器服务、执行耗时和错误信息,进而分析任务调度的总执行情况。监控记录存储的相应流程的全部的环节对应的执行信息,进而分析单次任务调度的各个环节执行情况。该执行信息包含接收参数、输出参数和执行耗时。
[0015]本专利技术公开的一种可编排的插件的分布式任务调度装置,装置包括:业务服务部署模块加载相应业务功能的插件,及部署及启动相应业务服务。分布式锁获取模块在业务服务启动时,加载相应的任务配置信息。并且,分布式锁获取模块通过当前服务的服务名称和ip端口来获取分布式锁。调度器服务加载模块在成功获取分布式锁后,通过当前服务定时从相应数据库中加载对应的任务信息并缓存。当前服务为调度器服务。执行器服务部署模块分布式设置执行器服务且部署执行器服务。执行器服务部署模块统一注册执行器服务于统一注册中心。任务执行编排模块在相应的管理界面下,根据相应环节来编排相应的任
务执行信息。执行器服务调度模块通过调度器服务来定时加载任务信息。执行器服务调度模块按照预设的调度策略,通过异步负载来请求相应的执行器服务,且统一记录相应的执行日志。任务调度监控模块通过管理界面来监控任务调度的总执行情况。任务调度监控模块监控单次任务调度的各个环节的执行情况。
[0016]本专利技术提供的一种可编排的插件的分布式任务调度方法和装置,能实现插件式加载无需增加额外的运维成本,且具备可编排和分布式调度能力,能够结合现有的微服务体系,进而提高执行的效率和服务器的运行性能,以保证对应调度任务即时高效的运行。
附图说明
[0017]图1为本专利技术方法的步骤流程示意图;
[0018]图2为本专利技术管理界面下按本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种可编排的插件的分布式任务调度方法,其特征在于,包括:步骤S1:加载相应业务功能的插件,部署及启动相应业务服务;步骤S2:业务服务启动时,加载相应的任务配置信息;并且,通过当前服务的服务名称和ip端口来获取分布式锁;步骤S3:成功获取分布式锁后,当前服务定时从相应数据库中加载对应的任务信息并缓存;其中,当前服务为调度器服务;步骤S4:分布式设置执行器服务且部署执行器服务;以及统一注册执行器服务于统一注册中心;步骤S5:在相应的管理界面下,根据相应环节来编排相应的任务执行信息;步骤S6:通过调度器服务来定时加载任务信息;以及按照预设的调度策略,通过异步负载来请求相应的执行器服务,且统一记录相应的执行日志;步骤S7:通过管理界面来监控任务调度的总执行情况;以及监控单次任务调度的各个环节的执行情况。2.根据权利要求1所述的方法,其特征在于,其中,所述步骤S1包括,当接收到加载类请求时,通过插件类加载器来加载相应类型的类实例:若类的类型为系统类,则将相应类委托给系统加载模块来加载;若类的类型为插件引擎,则通过当前的插件类加载器来进行实例加载;并且,若当前插件类加载器无法加载该类,则将该类委托给插件类加载器的插件依赖项;其中,插件依赖项记录了相应加载器的父类加载器,当前插件类加载器通过插件依赖项将该类加载委托给父类加载器;并且,使用父级优先参数插件类加载器来改变加载策略。3.根据权利要求1所述的方法,其特征在于,其中,所述步骤S2包括,业务服务启动时,加载相应业务功能的插件及监听相应的启动成功事件,以及获取当前服务的服务名称;并且,从相应数据库中查询相应服务名称关联的调度任务数据,进而绑定当前服务的服务名称和ip端口,且将服务名称和ip端口存储在缓存中;通过当前服务的服务名称和ip端口来获取相应的分布式锁。4.根据权利要求1所述的方法,其特征在于,其中,所述步骤S4包括:启动执行器服务,且执行器服务将相应执行器微服务的数据注册至注册中心;其中,执行器微服务的数据包括执行器微服务的地址、标识和名称;执行器服务注册的同时,调度器服务通过注册中心获取用于后续调度通信的执行器服务列表。5.根据权利要求1所述的方法,其特征在于,其中,所述步骤S5包括:调用流程接口且根据流程信息来获取相应的流程配置;根据相应的流程配置来获取全部流转节点的信息,以及对本次流转节点执行涉及的信息流转的数据进行序列化存储;其中,信息流转的数据包括流转节点和相应的流转传递关系;每个流转节点执行前或后,判断是否配置有相应事件;并且,若存在相应事件则执行相应事件;若相应流转节点包含非人工环节,则根据相应的流转节点的后续流转传递关系来顺次
执行该非人工环节相应的事务操作,直至返回客户端数据;若相应流转节点包含人工环节,则自动执行或手动执行该人工环节...

【专利技术属性】
技术研发人员:刘嘉伟冯海超王阳
申请(专利权)人:北京亿阳信通科技有限公司
类型:发明
国别省市:

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

1