一种基于区块链的任务调度方法、设备及存储介质技术

技术编号:38492986 阅读:13 留言:0更新日期:2023-08-15 17:05
本申请公开了一种基于区块链的任务调度方法、设备及存储介质。方法包括:基于集群系统中调度服务提供的前端交互界面,确定执行服务对应的当前任务分配规则;其中,执行服务包括若干个执行实例;当前任务分配规则为轮询任务分配规则或权重匹配任务分配规则;在集群系统接收到待执行任务的执行请求的情况下,调度服务调用区块链中预存的执行服务对应的待交互智能合约,以确定当前任务分配规则的任务执行状态,并基于任务执行状态,确定待执行任务对应的待执行实例标识;基于待执行实例标识,调用对应的待执行实例以执行待执行任务,并将执行结果返回至调度服务。本申请通过上述方法保证了集群系统的任务执行不重复。证了集群系统的任务执行不重复。证了集群系统的任务执行不重复。

【技术实现步骤摘要】
一种基于区块链的任务调度方法、设备及存储介质


[0001]本申请涉及区块链
,尤其涉及一种基于区块链的任务调度方法、设备及存储介质。

技术介绍

[0002]在集群系统中,执行服务中往往存在多个执行实例,当集群系统执行某项任务时需要判断由哪个执行实例来负责执行。现有的集群系统存在同一个任务被重复执行情况。
[0003]因此,如何确保集群系统的任务执行不重复成为亟待解决的技术问题。

技术实现思路

[0004]本申请实施例提供了一种基于区块链的任务调度方法、设备及存储介质,用以解决如下技术问题:如何确保集群系统的任务执行不重复。
[0005]第一方面,本申请实施例提供了一种基于区块链的任务调度方法,其特征在于,方法包括:基于集群系统中调度服务提供的前端交互界面,确定执行服务对应的当前任务分配规则;其中,执行服务包括若干个执行实例;当前任务分配规则为轮询任务分配规则或权重匹配任务分配规则;在集群系统接收到待执行任务的执行请求的情况下,调度服务调用区块链中预存的执行服务对应的待交互智能合约,以确定当前任务分配规则的任务执行状态,并基于任务执行状态,确定待执行任务对应的待执行实例标识;基于待执行实例标识,调用对应的待执行实例以执行待执行任务,并将执行结果返回至调度服务。
[0006]在本申请的一种实现方式中,在基于集群系统中调度服务提供的前端交互界面,确定执行服务对应的当前任务分配规则之前,方法还包括:将当前任务分配规则对应的待交互智能合约部署于区块链,并确定待交互智能合约对应的唯一编号;在基于集群系统中调度服务提供的前端交互界面,确定执行服务对应的当前任务分配规则之后,方法还包括:调度服务将待交互智能合约的唯一编号记录于集群系统数据库中。
[0007]在本申请的一种实现方式中,调度服务调用区块链中预存的执行服务对应的待交互智能合约,以确定当前任务分配规则的任务执行状态,具体包括:调度服务读取集群系统数据库,以获取唯一编号,并基于唯一编号,识别出区块链中待交互智能合约;调用待交互智能合约;待交互智能合约确定其中存储的各执行实例的执行次数,为执行服务对应的当前任务分配规则的任务执行状态。
[0008]在本申请的一种实现方式中,基于任务执行状态,确定待执行任务对应的待执行实例标识,具体包括:待交互智能合约确定各执行实例的执行次数是否都为0,并在确定各执行实例的执行次数都为0的情况下,确定执行服务中的第一执行实例对应的执行实例标识为待执行实例标识;其中,第一执行实例为执行服务中的位置排列为第一个的执行实例;在确定各执行实例的执行次数存在任一执行实例的执行次数不为0的情况下,基于待交互智能合约的合约内容,确定待执行任务对应的待执行实例标识。
[0009]在本申请的一种实现方式中,基于待交互智能合约的合约内容,确定待执行任务
对应的待执行实例标识,具体包括:确定待交互智能合约对应的任务分配规则为轮询任务分配规则还是权重匹配任务分配规则;在待交互智能合约对应的任务分配规则为轮询任务分配规则的情况下,待交互智能合约基于各执行实例在执行服务中的位置排列,依次将执行服务中各执行实例的执行次数与第一执行实例的执行次数进行对比,确定是否存在与第一执行实例的执行次数不相同的执行实例;在确定不存在与第一执行实例的执行次数不相同的执行实例的情况下,确实第一执行实例的标识为待执行任务对应的待执行实例标识;在确定存在与第一执行实例的执行次数不相同的执行实例的情况下,确定执行服务中第一个与第一执行实例的执行次数不相同的执行实例的标识为待执行任务对应的待执行实例标识。
[0010]在本申请的一种实现方式中,方法还包括:在待交互智能合约对应的任务分配规则为权重匹配任务分配规则的情况下,确定各执行实例的执行次数是否均达到周期权重分配次数;在确定各执行实例的执行次数均达到周期权重分配次数的情况下,确定第一执行实例的标识为待执行任务对应的待执行实例标识;在确定各执行实例的执行次数未均达到周期权重分配次数的情况下,基于各执行实例在执行服务中的位置排列,确定第一个未达到周期权重分配次数的执行实例的标识为待执行任务对应的待执行实例标识。
[0011]在本申请的一种实现方式中,在将执行结果返回至调度服务之后,方法还包括:调度服务基于执行结果,确定待执行任务是否执行成功;以及,将执行结果上传至区块链。
[0012]在本申请的一种实现方式中,方法还包括:在确定待执行任务执行失败的情况下,调度服务将待执行实例标识发送至区块链以触发待交互智能合约进行执行重试;在执行重试次数达到预设阈值的情况下,生成告警信息发送到调度服务提供的前端交互界面。
[0013]第二方面,本申请实施例还提供了一种基于区块链的任务调度设备,其特征在于,设备包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够:基于集群系统中调度服务提供的前端交互界面,确定执行服务对应的当前任务分配规则;其中,执行服务包括若干个执行实例;当前任务分配规则为轮询任务分配规则或权重匹配任务分配规则;在集群系统接收到待执行任务的执行请求的情况下,调度服务调用区块链中预存的执行服务对应的待交互智能合约,以确定当前任务分配规则的任务执行状态,并基于任务执行状态,确定待执行任务对应的待执行实例标识;基于待执行实例标识,调用对应的待执行实例以执行待执行任务,并将执行结果返回至调度服务。
[0014]第三方面,本申请实施例还提供了一种基于区块链的任务调度的非易失性计算机存储介质,存储有计算机可执行指令,其特征在于,计算机可执行指令设置为:基于集群系统中调度服务提供的前端交互界面,确定执行服务对应的当前任务分配规则;其中,执行服务包括若干个执行实例;当前任务分配规则为轮询任务分配规则或权重匹配任务分配规则;在集群系统接收到待执行任务的执行请求的情况下,调度服务调用区块链中预存的执行服务对应的待交互智能合约,以确定当前任务分配规则的任务执行状态,并基于任务执行状态,确定待执行任务对应的待执行实例标识;基于待执行实例标识,调用对应的待执行实例以执行待执行任务,并将执行结果返回至调度服务。
[0015]本申请实施例提供的一种基于区块链的任务调度方法、设备及存储介质,通过调度服务与区块链进行交互,完成待执行任务的执行实例分配工作,使得每个任务只会被成
功执行一次,保证任务正确完成的同时,还避免了重复执行。另外,借助区块链不可篡改、数据共享的特性,保存了任务的执行详情。
附图说明
[0016]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0017]图1为本申请实施例提供的一种基于区块链的任务调度方法流程图;
[0018]图2为本申请实施例提供的一种基于区块链的任务调度设备内部结构示意图。
具体实施方式
[0本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于区块链的任务调度方法,其特征在于,所述方法包括:基于集群系统中调度服务提供的前端交互界面,确定执行服务对应的当前任务分配规则;其中,所述执行服务包括若干个执行实例;所述当前任务分配规则为轮询任务分配规则或权重匹配任务分配规则;在所述集群系统接收到待执行任务的执行请求的情况下,所述调度服务调用区块链中预存的所述执行服务对应的待交互智能合约,以确定当前任务分配规则的任务执行状态,并基于所述任务执行状态,确定所述待执行任务对应的待执行实例标识;基于所述待执行实例标识,调用对应的待执行实例以执行所述待执行任务,并将执行结果返回至所述调度服务。2.根据权利要求1所述的一种基于区块链的任务调度方法,其特征在于,在基于集群系统中调度服务提供的前端交互界面,确定执行服务对应的当前任务分配规则之前,所述方法还包括:将所述当前任务分配规则对应的待交互智能合约部署于区块链,并确定所述待交互智能合约对应的唯一编号;在基于集群系统中调度服务提供的前端交互界面,确定执行服务对应的当前任务分配规则之后,所述方法还包括:所述调度服务将所述待交互智能合约的唯一编号记录于集群系统数据库中。3.根据权利要求2所述的一种基于区块链的任务调度方法,其特征在于,所述调度服务调用区块链中预存的所述执行服务对应的待交互智能合约,以确定当前任务分配规则的任务执行状态,具体包括:所述调度服务读取所述集群系统数据库,以获取所述唯一编号,并基于所述唯一编号,识别出所述区块链中待交互智能合约;调用所述待交互智能合约;所述待交互智能合约确定其中存储的各执行实例的执行次数,为所述执行服务对应的当前任务分配规则的任务执行状态。4.根据权利要求3所述的一种基于区块链的任务调度方法,其特征在于,基于所述任务执行状态,确定所述待执行任务对应的待执行实例标识,具体包括:所述待交互智能合约确定所述各执行实例的执行次数是否都为0,并在确定所述各执行实例的执行次数都为0的情况下,确定所述执行服务中的第一执行实例对应的执行实例标识为待执行实例标识;其中,所述第一执行实例为所述执行服务中的位置排列为第一个的执行实例;在确定所述各执行实例的执行次数存在任一执行实例的执行次数不为0的情况下,基于所述待交互智能合约的合约内容,确定所述待执行任务对应的待执行实例标识。5.根据权利要求4所述的一种基于区块链的任务调度方法,其特征在于,基于所述待交互智能合约的合约内容,确定所述待执行任务对应的待执行实例标识,具体包括:确定所述待交互智能合约对应的任务分配规则为轮询任务分配规则还是权重匹配任务分配规则;在所述待交互智能合约对应的任务分配规则为轮询任务分配规则的情况下,所述待交互智能合约基于各执行实例在所述执行服务中的位置排列,依次将所述执行服务中各执行
实例的执行次数与第一执行实例的执行次数进行对比,确定是否存在与第一执行实例的执行次数不相同的执行实例;在确定不存在与第一执行实例的执行次数不相同的执行实例的情况下,确实所述第一执行实例的标识为所述待执行任务对应的待执行实例标识;在确定存...

【专利技术属性】
技术研发人员:杨竹肖雪商广勇李程刘宁
申请(专利权)人:浪潮工业互联网股份有限公司
类型:发明
国别省市:

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

1