当前位置: 首页 > 专利查询>武汉大学专利>正文

基于分布式任务的可重复执行式计算方法、系统和介质技术方案

技术编号:36467616 阅读:18 留言:0更新日期:2023-01-25 23:09
本发明专利技术涉及信息技术领域,通过构造一种基于分布式任务的可重复执行式计算方法、系统和介质,解决长分布式任务最终状态难以计算的问题。包括新建所需执行的分布任务中的所有子任务,并设定子任务之间的映射关系,生成可解析的的标准化编排文件并将其保存至文件容器中;调取文件容器中的标准化编排文件,并对其解析获取所有子任务映射关系,并在进入和退出每个子任务接口增加日志输出并赋予UUID后保存至日志容器中;调取日志容器中的日志文件并对于解析获取所有子任务并依次执行,当当前执行任务出现异常,读取并解析日志,找到出错子任务后,重启该分布式任务。采用本发明专利技术占用存储空间小、易于解析,并能节约重复执行子任务时间。并能节约重复执行子任务时间。并能节约重复执行子任务时间。

【技术实现步骤摘要】
基于分布式任务的可重复执行式计算方法、系统和介质


[0001]本专利技术涉及信息
,主要通过构造一种基于分布式任务的可重复执行式计算方法、系统和介质,解决长分布式任务最终状态难以计算的问题。

技术介绍

[0002]分布式任务通常包括多个子任务,各个子任务通常分布在不同服务器执行,并且每个子任务包含不同类型的IO操作,如网络IO操作、数据库IO操作、内存IO操作、硬盘IO操作等。分布式任务最终完成需要保证其中每个子任务都完成,一旦其中某些子任务执行失败,整个分布式任务是失败的,即会产生脏数据,这是一个分布式事务问题。
[0003]现有解决分布式事务问题的方法通常是针对具体业务,设计一种数据补偿方法,既当检测到异常日志的时候,通过事后修复数据的方法来达到最终一致性的目的。但这种方法一般存在三个问题:一是这种操作办法通常是人工干预,导致延时性较高;二是这种方法不具备通用性,不同的业务需要设计不同的数据补偿方法,费时费力,代价太大;三是由于整个过程是人工参与,所以数据容易出错。

技术实现思路

[0004]本专利技术旨在提出一种基于分布式任务的可重复执行式计算方法、系统和介质,以解决分布式任务最终一致性难以计算、出错任务无法快速重复执行、方法不通用等问题。具体而言,本专利技术的上述技术问题主要是通过下述技术方案得以解决的:一种基于分布式任务的可重复执行式计算方法,包括新建所需执行的分布任务中的所有子任务,并设定子任务之间的映射关系,生成可解析的标准化编排文件并将其保存至文件容器中;调取文件容器中的标准化编排文件,并对其解析获取所有子任务映射关系,并在进入和退出每个子任务接口增加日志输出并赋予子任务UUID后保存至日志容器中,UUID指通用唯一识别码,用于区别不同的子任务;调取日志容器中的日志文件并对于解析获取所有子任务并依次执行,当当前执行任务出现异常,读取并解析日志,找到出错子任务后,重启该分布式任务。
[0005]在上述的一种基于分布式任务的可重复执行式计算方法,创建分布式任务并为分布式任务以及所有子任务生成唯一标识UUID;确定存在上下游业务关系的子任务组合;为该分布式任务生成标准化编排文件并将其保存至文件容器中。
[0006]在上述的一种基于分布式任务的可重复执行式计算方法,创建分布式任务时,输入的参数包括任务名称、子任务名称,子任务是否包含IO操作,子任务是否需要失败重试。
[0007]在上述的一种基于分布式任务的可重复执行式计算方法,导出文件容器中的标准化编排文件,解析出所有子任务相关配置信息;
读取编排文件,根据每个子任务配置信息,在子任务相应代码模块的进入位置增加子任务开始执行日志S={UUID,status,LOGINFO,startTime},在子任务相应代码模块的退出位置增加子任务结束执行日志E={UUID,status,LOGINFO,endTime},且必须包含上下游子任务UUID,其中,LOGINFO为日志内容;运行分布式任务。
[0008]在上述的一种基于分布式任务的可重复执行式计算方法,定时汇集所有任务的日志信息,根据分布式任务UUID做日志分片,使同一个分布式任务的日志保存在同一个日志文件。
[0009]在上述的一种基于分布式任务的可重复执行式计算方法,逐行读取日志容器中的日志数据,解析为可解读的标准化格式数据;若该行数据是开始日志,新建一个解析任务,并将该日志文件保存到该解析任务中,再重新读取日志容器中的日志数据;否则,根据子任务UUID找到该子任务对应的分布式任务,将日志保存到该分布式任务对应的解析任务中再重新读取日志容器中的日志数据;收集该分布式任务所有日志,根据分布式任务UUID读取并解析其标准化编排文件,得到该分布式任务所有子任务集合T={T1,T2,T3…
T
n
},根据分布式任务中子任务上下游关系,去日志中匹配所有子任务的开始执行日志集合TLogS={S1,S2,S3,

S
n
}和结束执行日志集合TLogE={E1,E2,E3,

E
n
},并根据匹配结果执行:若所有子任务都能找到子任务成功执行的日志信息,并且所有子任务的开始执行日志集合中的UUID集合与结束执行日志集合中的UUID集合的异或结果为0,即R=S1.UUID

S2.UUID
⊕…⊕
S
n
.UUID

E1.UUID

E2.UUID
⊕…⊕
E
n
.UUID=0,该分布式任务执行成功;若存在子任务没有匹配成功执行的日志信息,或者日志信息显示执行异常,或者所有子任务的开始执行日志集合中的UUID集合与结束执行日志集合中的UUID集合的异或结果不为0,即R=S1.UUID

S2.UUID
⊕…⊕
S
n
.UUID

E1.UUID

E2.UUID
⊕…⊕
E
n
.UUID!=0,该分布式任务执行失败。从子任务集合T中遍历寻找开始执行日志和结束执行日志不匹配、或日志状态异常的子任务,从该失败的子任务处重新开启失败的分布式任务。
[0010]在上述的一种基于分布式任务的可重复执行式计算方法,逐行读取日志容器中的日志数据,若该行数据是异常日志或者结束日志,将该日志保存到分布式任务对应的解析任务中后执行收集该分布式任务所有日志步骤。
[0011]一种执行所述方法的系统,包括分布式任务执行过程自定义编排系统:被配置为用于新建所需执行的分布任务中的所有子任务,并设定子任务之间的映射关系,生成可解析的的标准化编排文件并将其保存至文件容器中;分布式任务日志管理系统:被配置为用于调取文件容器中的标准化编排文件,并对其解析获取所有子任务映射关系,并在进入和退出每个子任务接口增加日志输出并赋予子任务UUID后保存至日志容器中,UUID指通用唯一识别码,用于区别不同的子任务;任务状态标准化日志解析系统:被配置为用于调取日志容器中的日志文件并对于解析获取所有子任务并依次执行,当当前执行任务出现异常,读取并解析日志,找到出错子任务后,重启该分布式任务。
[0012]分布式任务最终一致性计算方式:被配置为通过计算所有子任务开始执行和结束
执行日志中UUID集合的异或值来判断,若结果为0则表示分布式任务执行成功,若结果不为0则表示分布式任务执行失败。
[0013]一种计算机介质,存储有计算机程序,该计算机程序能够执行权利要求1至7任意一项所述方法。
[0014]因此,本专利技术具有如下优点:1、提出了分布式任务中各个子任务以及子任务之间关系的结构化描述文件,并且该文件便于解析;2、提出了记录分布式任务中各个子任务执行状态的日志记录方式,并且改日志具备格式简单、占用存储空间小、易于解析等特点;3、分布式任务执行出错可以根据日志找到本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于分布式任务的可重复执行式计算方法,其特征在于,包括新建所需执行的分布任务中的所有子任务,并设定子任务之间的映射关系,生成可解析的标准化编排文件并将其保存至文件容器中;调取文件容器中的标准化编排文件,并对其解析获取所有子任务映射关系,并在进入和退出每个子任务接口增加日志输出并赋予子任务UUID后保存至日志容器中,UUID指通用唯一识别码,用于区别不同的子任务;调取日志容器中的日志文件并对于解析获取所有子任务并依次执行,当当前执行任务出现异常,读取并解析日志,找到出错子任务后,重启该分布式任务。2.根据权利要求1所述的一种基于分布式任务的可重复执行式计算方法,其特征在于,还包括:创建分布式任务并为分布式任务以及所有子任务生成唯一标识UUID;确定存在上下游业务关系的子任务组合;为该分布式任务生成标准化编排文件并将其保存至文件容器中。3.根据权利要求1所述的一种基于分布式任务的可重复执行式计算方法,其特征在于,还包括:创建分布式任务时,输入的参数包括任务名称、子任务名称,子任务是否包含IO操作,子任务是否需要失败重试。4.根据权利要求1所述的一种基于分布式任务的可重复执行式计算方法,其特征在于,还包括:导出文件容器中的标准化编排文件,解析出所有子任务相关配置信息;读取编排文件,根据每个子任务配置信息,在子任务相应代码模块的进入位置增加子任务开始执行日志S={UUID,status,LOGINFO,startTime},在子任务相应代码模块的退出位置增加子任务结束执行日志E={UUID,status,LOGINFO,endTime},且必须包含上下游子任务UUID,其中,LOGINFO为日志内容;运行分布式任务。5.根据权利要求4所述的一种基于分布式任务的可重复执行式计算方法,其特征在于,还包括:定时汇集所有任务的日志信息,根据分布式任务UUID做日志分片,使同一个分布式任务的日志保存在同一个日志文件。6.根据权利要求1所述的一种基于分布式任务的可重复执行式计算方法,其特征在于,还包括:逐行读取日志容器中的日志数据,解析为可解读的标准化格式数据;若该行数据是开始日志,新建一个解析任务,并将该日志文件保存到该解析任务中再重新读取日志容器中的日志数据;否则,根据子任务UUID找到该子任务对应的分布式任务,将日志保存到该分布式任务对应的解析任务中再重新读取日志容器中的日志数据;收集该分布式任务所有日志,根据分布式任务UUID读取并解析其标准化编排文件,得到该分布式任务所有子任务集合T={T1,T2,T3…
T
n
},根据分布式任务中子任务上下游关系,去日志中匹配所有子任务的开始执行日...

【专利技术属性】
技术研发人员:张典石小川马超
申请(专利权)人:武汉大学
类型:发明
国别省市:

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

1