一种超时重发控制方法及发送装置、接收装置与流程

文档序号:12375401阅读:184来源:国知局
一种超时重发控制方法及发送装置、接收装置与流程

本发明涉及数据处理领域,具体地,涉及一种超时重发控制方法及发送装置、接收装置。



背景技术:

参见图1所示分布式系统的架构图,分布式系统通常由一个发送装置和多个接收装置组成。其中,可以将分布式系统中的主控节点设为发送装置,计算节点设为接收装置。发送装置接收到任务请求后,会根据各个接收装置的处理能力,进行任务分配。例如,发送装置向接收装置1发送指令,以使接收装置1执行任务1。

通常,接收装置1接收到指令后,会向发送装置反馈预设消息,以此通知发送装置,接收装置1可以正常执行任务1。若在预设时间范围内,发送装置未接收到接收装置1反馈的预设消息,则会启动重发机制,再次指示接收装置1或其他接收装置执行任务1。若此时接收装置1已经开始执行任务1,重发机制可能会导致任务被重复执行,造成处理资源的浪费。此外,如果被重复执行的任务是可以累加效果的,则重复执行还会导致执行结果累加,致使执行结果出错。



技术实现要素:

本发明的目的是提供一种超时重发控制方法及发送装置、接收装置,用以准确判断接收装置的任务执行情况,提供更具针对性的重发控制方案,避免重复执行任务导致的处理资源浪费以及处理结果出错等问题。

本发明实施例提供了一种发送装置侧的超时重发控制方法,所述方法包括:向第一接收装置发送任务指令,以使所述第一接收装置执行任务;获取与所述第一接收装置对应的第一标志位和第二标志位,所述第一标志位用于表示所述第一接收装置是否接收到所述任务指令,所述第二标志位用于表示所述任务是否执行完毕;根据所述第一标志位和所述第二标志位,对所述任务指令进行重发控制。

可选地,所述根据所述第一标志位和所述第二标志位,对所述任务指令进行重发控制,包括:如果所述第一标志位表示所述第一接收装置接收到所述任务指令,且所述第二标志位表示所述任务执行完毕,停止重发所述任务指令。

可选地,所述根据所述第一标志位和所述第二标志位,对所述任务指令进行重发控制,包括:如果所述第一标志位表示所述第一接收装置未接收到所述任务指令,和/或,所述第二标志位表示所述任务未执行完毕,向第二接收装置发送所述任务指令,以使所述第二接收装置执行所述任务。

本发明实施例提供了一种接收装置侧的超时重发控制方法,所述方法包括:判断是否接收到发送装置发送的任务指令,所述任务指令用于指示执行任务;在判定接收到所述任务指令时,修改第一标志位,所述第一标志位用于表示所述接收装置是否接收到所述任务指令。

可选地,判断所述任务是否执行完毕;在判定所述任务执行完毕时,修改第二标志位,所述第二标志位用于表示所述任务是否执行完毕。

本发明实施例提供了一种发送装置,所述发送装置包括:指令发送单元,用于向第一接收装置发送任务指令,以使所述第一接收装置执行任务;标志位获取单元,用于获取与所述第一接收装置对应的第一标志位和第二标志位,所述第一标志位用于表示所述第一接收装置是否接收到所述任务指令,所述第二标志位用于表示所述任务是否执行完毕;重发控制单元,用于根据所述标志位获取单元获取的所述第一标志位和所述第二标志位,对所述任务指令进行重发控制。

可选地,所述重发控制单元用于在所述第一标志位表示所述第一接收装置接收到所述任务指令,且所述第二标志位表示所述任务执行完毕时,停止重发所述任务指令。

可选地,所述重发控制单元用于在所述第一标志位表示所述第一接收装置未接收到所述任务指令,和/或,所述第二标志位表示所述任务未执行完毕时,向第二接收装置发送任务指令,以使所述第二接收装置执行所述任务。

本发明实施例提供了一种接收装置,所述接收装置包括:接收判断单元,用于判断是否接收到发送装置发送的任务指令,所述任务指令用于指示执行任务;第一标志位修改单元,用于在判定接收到所述任务指令时,修改第一标志位,所述第一标志位用于表示所述接收装置是否接收到所述任务指令。

可选地,所述装置还包括:执行判断单元,用于判断所述任务是否执行完毕;第二标志位修改单元,用于在判定所述任务执行完毕时,修改第二标志位,所述第二标志位用于表示所述任务是否执行完毕。

本发明技术方案,将整个任务处理过程划分为两个阶段:任务接收阶段以及任务执行阶段,并对应这两个阶段设置两个标志位,以此来标识接收装置在每个阶段的处理状态。对应于此,如果发送装置获取到的第一标志位表示接收装置接收到发送装置下发的指令,且第二标志位表示接收装置将发送装置分发的任务执行完毕,发送装置则可判定此时不需要启动重发机制。如此,便可有效避免任务重复执行造成的资源浪费,以及任务累加造成的执行结果出错。

本发明的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:

图1是分布式系统的架构图;

图2是本发明中发送装置侧的超时重发控制方法的流程图;

图3是本发明中接收装置侧的超时重发控制方法的流程图;

图4是本发明发送装置的结构示意图;

图5是本发明接收装置的结构示意图。

具体实施方式

以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。

参见图2,示出了本发明发送装置侧的超时重发控制方法的流程图,所述方法可以包括以下步骤。

S101,向第一接收装置发送任务指令,以使第一接收装置执行任务。

S102,获取与第一接收装置对应的第一标志位和第二标志位。第一标志位用于表示第一接收装置是否接收到任务指令,第二标志位用于表示任务是否执行完毕。

S103,根据第一标志位和第二标志位,对任务指令进行重发控制。

发明人在研发过程中发现,可能导致发送装置中的超时启动重发机制的情况大致分为以下三种。

情况1,接收装置1未接收到发送装置发送的指令,也就是说,接收装置1在接收指令之前,宕机退出。

情况2,接收装置1接收到发送装置发送的指令,但任务未执行完毕,也就是说,接收装置1在完成任务之前,宕机退出。

情况3,接收装置1接收到发送装置发送的指令,且任务执行完毕,但未向发送装置反馈预设消息,也就是说,接收装置1在反馈预设消息之前,宕机退出。

结合上述三种情况,发明人发现可以将整个任务处理过程划分为两个阶段:一个是任务接收阶段,另一个是任务执行阶段,对应于这两个阶段,可以设置两个标志位,以此来标识每个阶段的处理状态。具体地,在本发明的方案中,可以通过第一标志位表示接收装置是否在任务接收阶段,成功接收到发送装置下发的指令;可以通过第二标志位表示接收装置是否在任务执行阶段,将发送装置分发的任务执行完毕。

作为一种示例,可以将第一标志位的初始状态设置为未接收到指令,将第二标志位的初始状态设置为任务未执行完毕,对应于此,只需要根据第一接收装置的任务接收、任务执行情况,修改标志位即可。或者,不设置两个标志位的初始状态,而是在发送装置向第一接收装置下发任务指令后,由发送装置将第一标志位的状态设置为未接收到指令,将第二标志位的状态设置为任务未执行完毕,对应于此,还需要发送装置具有修改标志位的功能。

作为一种示例,本发明中的第一标志位和第二标志位可以保存在第三方数据库中,且第三方数据库可以分别与发送装置、第一接收装置通信。如此,发送装置可以从第三方数据库中读取两个标志位的状态,发送装置、第一接收装置二者都可以在第三方数据库中修改两个标志位的状态。作为一种示例,第一接收装置可以与数据库直接通信,修改两个标志位的状态;或者,第一接收装置可以通过其他第三方设备与数据库间接通信,修改两个标志位的状态,本发明实施例对此可不做限定,具体可由实际应用而定。

具体地,在发送装置获取到两个标志位的状态后,如果第一标志位表示第一接收装置接收到发送装置下发的任务指令,且第二标志位表示任务已经执行完毕,发送装置判定可能是上述情况3,致使发送装置未接收到第一接收装置反馈的预设消息,此时无需进行任务重发,也即,发送装置会停止重发任务指令。如此,便可避免任务重复执行造成的资源浪费,以及任务累加造成的执行结果出错。

除上述情况之外,如果第一标志位表示第一接收装置未接收到任务指令,和/或,第二标志位表示任务未执行完毕,发送装置向第二接收装置发送任务指令,以使第二接收装置执行所述任务。也就是说,当发送装置判定可能是上述情况1或者情况2,致使发送装置未接收到第一接收装置反馈的预设消息时,可以启动超时重发机制,将任务下发给其它接收装置执行。举例来说,发送装置将任务1下发到接收装置1执行,若通过读取接收装置1对应的两个标志位,判定需要启动超时重发机制,发送装置可以根据除接收装置1之外的其他接收装置的处理能力,重新下发任务1到接收装置2处执行。

参见图3,示出了本发明接收装置侧的超时重发控制方法的流程图,所述方法可以包括以下步骤。

S201,判断是否接收到发送装置发送的任务指令,任务指令用于指示执行任务。

S202,在判定接收到所述任务指令时,修改第一标志位,第一标志位用于表示接收装置是否接收到任务指令。

也就是,接收装置可以通过修改第一标志位的方式,向发送装置反馈任务指令的接收状态。本发明实施例中,指令的接收状态可以包括:未接收到发送装置下发的任务指令、接收到发送装置下发的任务指令。作为一种示例,第一标志位可以通过false表示未接收到任务指令,通过true表示已接收到任务指令。

作为一种示例,修改第一标志位的方式可以为:当接收装置判定接收到发送装置发送的任务指令时,修改第一标志位,以通过第一标志位表示接收装置已接收到任务指令。也就是说,一旦接收装置接收到发送装置下发的指令,即会修改第一标志位的状态,使其表示已接收;反之,接收装置则不会修改第一标志位的状态,使其继续表示未接收。这样,发送装置便可以通过第一标志位准确获知接收装置在任务接收阶段的真实状态,进而基于此做出是否启动超时重发机制的判断结果。

在图3的基础上,所述方法还可以包括以下步骤。

S203,判断所述任务是否执行完毕。

S204,在判定所述任务执行完毕时,修改第二标志位。第二标志位用于表示所述任务是否执行完毕。

该实施例中,接收装置还可以通过修改第二标志位的方式,向发送装置反馈任务的执行状态。任务的执行状态可以包括:任务执行完毕、任务未执行完毕。作为一种示例,第二标志位可以通过false表示任务未执行完毕,通过true表示任务已执行完毕。

作为一种示例,本发明修改第二标志位的方式可以为:当所述接收装置判定所述任务执行完毕时,修改所述第二标志位,用于通过所述第二标志位表示接收装置已经将发送装置分发的任务执行完毕。也就是说,一旦任务执行完毕,接收装置即会修改第二标志位的状态,使其表示为任务已执行完毕;反之,接收装置则不会修改第二标志位的状态,使其继续表示为未执行完毕。这样,发送装置可通过第二标志位准确获知接收装置在任务执行阶段的真实状态,进而基于此来启动超时重发机制。

其中,不论是第一接收装置,还是第二接收装置,均可按照图3所示方法,通过各自对应的第一标志位向发送装置反馈指令接收状态,通过各自对应的第二标志位向发送装置反馈任务执行状态。

综上所述,本发明方案中,发送装置不再盲目地启动重发机制,而是会结合表示任务接收阶段真实状态的第一标志位,以及表示任务执行阶段真实状态的第二标志位,准确识别发送装置未接收到第一接收装置反馈的预设消息的原因,并据此确定是否启动超时重发机制。如果不需要启动超时重发机制,发送装置则可继续进行其他任务的分发;如果需要启动超时重发机制,为了避免任务再次执行失败,发送装置可以从第一接收装置之外的其他接收装置中,选取一个合适的接收装置进行任务重发。

作为一种示例,本发明方案可以应用于分布式系统中。对应于此,发送装置可以体现为分布式系统中的主控节点,接收装置可以体现为分布式系统中的计算节点。

与图2所示方法相对应,本发明实施例还提供一种发送装置300,参见图4所示示意图,所述发送装置300可以包括指令发送单元301和标志位获取单元302。

指令发送单元301用于向第一接收装置发送任务指令,以使第一接收装置执行任务。

标志位获取单元302用于获取与第一接收装置对应的第一标志位和第二标志位。第一标志位用于表示第一接收装置是否接收到任务指令,第二标志位用于表示所述任务是否执行完毕。

重发控制单元303,用于根据标志位获取单元302获取的第一标志位和第二标志位,对所述任务指令进行重发控制。

可选地,所述重发控制单元用于在第一标志位表示第一接收装置接收到任务指令,且第二标志位表示所述任务执行完毕时,停止重发所述任务指令。

可选地,所述重发控制单元用于在第一标志位表示第一接收装置未接收到所述任务指令,和/或,第二标志位表示所述任务未执行完毕时,向第二接收装置发送任务指令,以使第二接收装置执行所述任务。

与图3所示的方法相对应地,本发明实施例还提供一种接收装置400,参见图5所示示意图,所述接收装置400可以包括接收判断单元401和第一标志位修改单元402。

任务指令判断单元401用于判断是否接收到发送装置发送的任务指令,所述任务指令用于指示执行任务。

第一标志位修改单元402用于在判定接收到所述任务指令时,修改第一标志位。第一标志位用于表示接收装置是否接收到任务指令。

可选地,在图5的基础上,所述装置400还可以包括执行判断单元403和第二标志位修改单元404。

执行判断单元403用于判断所述任务是否执行完毕。

第二标志位修改单元404用于在判定所述任务执行完毕时,修改第二标志位。第二标志位用于表示所述任务是否执行完毕。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。

此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1