复杂任务的并行处理方法和装置制造方法及图纸

技术编号:8532482 阅读:171 留言:0更新日期:2013-04-04 15:16
本发明专利技术公开了一种复杂任务的并行处理方法和装置。所述方法包括:请求处理单元将接收到的客户端请求分解为多个无依赖关系的子任务,并将每一个子任务均发送给一个独立的工作单元进行处理;请求处理单元接收各个工作单元返回的成功处理结果或失败处理结果;当在预定时间段内接收到所有子任务的成功处理结果时,请求处理单元将所有的成功处理结果进行合并操作后发送给相应的客户端;而当有至少一个子任务未在预定时间段内返回成功处理结果时,请求处理单元中断所有未完成的子任务的处理,并对已完成的需要进行回滚操作的子任务进行回滚操作。本发明专利技术可以有效地提高单个请求的响应速度,降低响应时间,提高服务器侧的资源使用效率。

【技术实现步骤摘要】

本专利技术涉及计算机
,特别涉及一种复杂任务的并行处理方法和装置
技术介绍
在现有的软件系统中,客户端(Client) /服务器(Server)模式的使用十分广泛。在该模式中,一般都是由Client提交请求,然后Client等待Server返回结果;Server接收到Client的请求后,根据该请求进行相应的处理,然后将处理结果返回给Client。由于一个Server —般可以连接多个Client,因此Server端通常被设计为可同时处理多个并发的请求,所有同时到达的请求可以互相不受干扰的进行并行处理;而在很多关键的重要应用中,客户端对于请求的响应时间也有一定的要求。随着各种实际应用的复杂度的增加、并发用户数量的不断提高以及所需处理的数据类型的逐步扩展,Client/Server模式的设计也出现了很多进化。目前,常用的Client/Server模式有以下的几种模式1、分层模式将原来单一的Server端分为多个中间层,每一层功能定义明确,如接口层、业务逻辑层、数据服务层等。其中,所述的分层可以是逻辑分层或物理分层。2、缓存技术将经常访问的数据缓存储起来以备后续步骤中重复使用。3、分布式技术将处理或计算分布到多个节点进行,以提高可扩展性。4、异步处理模式为了解决请求过于复杂、处理时间长和不可控的问题,Client被设计为提交请求后即返回,而不等待处理结果;而Server端则在处理完毕后将以某种方式通知Client。然而,在现有技术中的Client/Server模式的实现方式中,对于单个请求的处理机制上没有太多的实现方式,通常情况下都是将单个请求进行串行处理,并使用分层模式进行负载均衡,使用缓存技术提高访问速度。而如果同步方式无法满足限定时间内的处理,则将使用复杂的异步处理模式。因此,对于复杂的请求处理时,如果Client/Server模式中采用同步模式,则将造成处理缓慢的问题,导致用户的体验度不佳。而且,如果不能在限定时限内完成相应的处理,则可能会造成请求处理能力的下降。虽然在现有的复杂任务处理方法中使用了缓存技术来提高数据访问的效率,但对于关键任务的作用却并不大。而且,虽然通过使用分布式技术进行线性扩展系统负载以解决高并发、海量数据的问题,但上述分布式技术对于单个请求反而会降低响应速度。此外,如果在Client/Server模式中采用异步处理模式,则会极大地增加整个系统设计的复杂度,从而不利于具体实现及扩展。综上可知,由于现有技术中的复杂任务的处理方法具有如上所述的缺点,因此在对复杂任务进行处理时,如何有效提高单个请求的响应速度、降低响应时间和提高服务器侧的资源使用效率,已经是本领域中亟需解决的问题。
技术实现思路
根据本专利技术,提供了一种复杂任务的并行处理方法和装置,从而可有效地提高单个请求的响应速度,降低响应时间,提高服务器侧的资源使用效率。根据本专利技术的一种复杂任务的并行处理方法,其包括A、请求处理单元将接收到的客户端请求分解为多个无依赖关系的子任务,并将每一个子任务均发送给一个独立的工作单元进行处理;B、请求处理单元接收各个工作单元返回的成功处理结果或失败处理结果;C、当在预定时间段内接收到所有子任务的成功处理结果时,请求处理单元将所有的成功处理结果进行合并操作后发送给相应的客户端;而当有至少一个子任务未在预定时间段内返回成功处理结果时,请求处理单元中断所有未完成的子任务的处理,并对已完成的需要进行回滚操作的子任务进行回滚操作。其中,所述步骤A包括请求处理单元从接收到的客户端请求中获取所需服务的参数;为所述客户端请求生成一个全局唯一的流水号;根据所述客户端请求涉及的服务调用,按预定义规则将所述客户端请求分解为多个无依赖关系的子任务;在各个子任务之中绑定与各子任务相关的参数。其中,所述在各个子任务之中绑定与各子任务相关的参数包括将与各子任务相关的参数与相应的子任务绑定,形成相应的闭包对象;其中,所述闭包对象中包括调用方法和调用方法所需参数的对象。其中,所述与各子任务相关的参数中还可进一步包括子任务所属的客户端请求的流水号。其中,所述步骤B还进一步包括当工作单元向请求处理单元返回成功处理结果时,所述工作单元将其所处理的子任务标识为已完成。其中,所述步骤B还进一步包括当所述已完成的子任务为质变操作时,工作单元根据所述已完成的子任务所属客户端请求的流水号,在预设的回滚执行条目中记录该已完成的子任务;其中,所述质变操作为更改状态的操作或写入数据的操作。其中,预先设置一个初始值为O的触发变量,则所述步骤B还进一步包括当请求处理单元接收到一个工作单元返回的成功处理结果时,所述请求处理单元将所述触发变量的值增加一。其中,所述步骤C包括Cl、当预设的定时器超时时,执行步骤C5 ;否则,执行步骤C2 ;其中,所述定时器的定时时长等于预先设置的预定时间段的长度;C2、当接收到的处理结果为成功处理结果时,执行步骤C3 ;否则,执行步骤C5 ;C3、当所有子任务均已被成功处理时,执行步骤C4 ;否则,返回执行步骤B ;C4、将所有的处理结果进行合并操作后发送给相应的客户端,结束流程;C5、中断所有未完成的子任务的处理,并对所有已完成的子任务进行回滚操作。其中,该方法还进一步包括当预设的定时器超时时,请求处理单元向客户端返回处理超时的信息。其中,该方法还进一步包括当接收到的处理结果不是成功处理结果时,请求处理单元向客户端返回处理失败的信息。其中,判断所有子任务均已被成功处理的方法为判断所述触发变量的值是否等于所有子任务的总数目;如果是,则所有子任务均已被成功处理;否则,至少有一个子任务仍未被成功处理。其中,所述步骤C4还进一步包括删除与所述客户端请求的流水号相对应的回滚执行条目。其中,所述删除与所述客户端请求的流水号相对应的回滚执行条目包括请求处理单元可向预先设置的垃圾收集单元发送丢弃指令,所述丢弃指令中携带有客户端请求的流水号;所述垃圾收集单元根据所述丢弃指令删除与所述流水号相对应的回滚执行条目。其中,所述对所有已完成的子任务进行回滚操作包括对与所述客户端请求的流水号相对应的回滚执行条目中存储的所有子任务进行回滚操作。其中,所述对与所述客户端请求的流水号相对应的回滚执行条目中存储的所有子任务进行回滚操作包括请求处理单元向预先设置的垃圾收集单元发送执行指令,所述执行指令中携带有客户端请求的流水号;所述垃圾收集单元根据所述执行指令对与所述流水号相对应的回滚执行条目中存储的所有子任务进行回滚操作。其中,所述中断所有未完成的子任务的处理包括向所有未完成的子任务所对应的工作单元发送中断指令;所述工作单元根据接收到的中断指令中断对未完成的子任务的处理。本专利技术实施例中还提供了一种复杂任务的并行处理装置,其包括请求处理单元、垃圾收集单元和多个工作单元;所述请求处理单元,用于将接收到的客户端请求分解为多个无依赖关系的子任务,并将每一个子任务均发送给一个独立的工作单元;还用于接收各个工作单元返回的成功处理结果或失败处理结果,并当在预定时间段内接收到所有子任务的成功处理结果时,将所有的成功处理结果进行合并操作后发送给相应的客户端;当有至少一个子任务未在预定时间段内返回成功处理结果时,向所有未完成的子任务所对应的工作单元发送中断指令本文档来自技高网
...

【技术保护点】
一种复杂任务的并行处理方法,所述方法包括:A、请求处理单元将接收到的客户端请求分解为多个无依赖关系的子任务,并将每一个子任务均发送给一个独立的工作单元进行处理;B、请求处理单元接收各个工作单元返回的成功处理结果或失败处理结果;C、当在预定时间段内接收到所有子任务的成功处理结果时,请求处理单元将所有的成功处理结果进行合并操作后发送给相应的客户端;而当有至少一个子任务未在预定时间段内返回成功处理结果时,请求处理单元中断所有未完成的子任务的处理,并对已完成的需要进行回滚操作的子任务进行回滚操作。

【技术特征摘要】
1.一种复杂任务的并行处理方法,所述方法包括A、请求处理单元将接收到的客户端请求分解为多个无依赖关系的子任务,并将每一个子任务均发送给一个独立的工作单元进行处理;B、请求处理单元接收各个工作单元返回的成功处理结果或失败处理结果;C、当在预定时间段内接收到所有子任务的成功处理结果时,请求处理单元将所有的成功处理结果进行合并操作后发送给相应的客户端;而当有至少一个子任务未在预定时间段内返回成功处理结果时,请求处理单元中断所有未完成的子任务的处理,并对已完成的需要进行回滚操作的子任务进行回滚操作。2.如权利要求1所述的复杂任务的并行处理方法,其中,所述步骤A包括请求处理单元从接收到的客户端请求中获取所需服务的参数;为所述客户端请求生成一个全局唯一的流水号;根据所述客户端请求涉及的服务调用,按预定义规则将所述客户端请求分解为多个无依赖关系的子任务;在各个子任务之中绑定与各子任务相关的参数;和所述在各个子任务之中绑定与各子任务相关的参数包括将与各子任务相关的参数与相应的子任务绑定,形成相应的闭包对象;其中,所述闭包对象中包括调用方法和调用方法所需参数的对象。3.如权利要求1所述的复杂任务的并行处理方法,其中,所述步骤B还进一步包括 当工作单元向请求处理单元返回成功处理结果时,所述工作单元将其所处理的子任务标识为已完成;当所述已完成的子任务为质变操作时,工作单元根据所述已完成的子任务所属客户端请求的流水号,在预设的回滚执行条目中记录该已完成的子任务;其中,所述质变操作为更改状态的操作或写入数据的操作。4.如权利要求3所述的复杂任务的并行处理方法,其中,预先设置一个初始值为O的触发变量,则所述步骤B还进一步包括当请求处理单元接收到一个工作单元返回的成功处理结果时,所述请求处理单元将所述触发变量的值增加一;所述步骤C包括Cl、当预设的定时器超时时,执行步骤C5 ;否则,执行步骤C2 ;其中,所述定时器的定时时长等于预先设置的预定时间段的长度;C2、当接收到的处理结果为成功处理结果时,执行步骤C3 ;否则,执行步骤C5 ;C3、当所有子任务均已被成功处理时,执行步骤C4 ;否则,返回执行步骤B ;C4、将所有的处理结果进行合并操作后发送给相应的客户端,结束流程;C5、中断所有未完成的子任务的处理,并对所有已完成的子任务进行回滚操作。5.如权利要求4所述的复杂任务的并行处理方法,其中,所述方法还进一步包括当预设的定时器超时时,请求处理单元向客户端返回处理超时的信息;当接收到的处理结果不是成功处理结果时,请求处理单...

【专利技术属性】
技术研发人员:纪震寰
申请(专利权)人:青岛海信传媒网络技术有限公司
类型:发明
国别省市:

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

1