一种任务处理方法及系统与流程

文档序号:12469789阅读:246来源:国知局
一种任务处理方法及系统与流程

本发明涉及计算机技术领域,具体涉及一种任务处理方法及系统。



背景技术:

现有的一些包含有多个子系统交互的系统,通常是一个进程从头到尾的执行,各个节点之间的交互是通过程序的上下文进行互相调用。但是,在执行任务的过程中若某一节点执行出现异常时,系统将无法获取异常信息。任务失败时,数据无法完全回滚;另外,由于各节点之间无法进行解耦,某一个节点代码的升级必然影响该任务的执行。



技术实现要素:

有鉴于此,本发明实施例期望提供一种任务处理方法及系统,至少能解决上述问题之一。

本发明的技术方案是这样实现的:

本发明实施例提供了一种任务处理方法,应用于包括消息通道以及与消息通道连接的多个处理节点的任务处理系统中,所述方法包括:

第n处理节点从消息通道获取第n任务处理消息,并根据所述第n任务处理消息执行第n预定操作,根据第n预定操作的执行结果向所述消息通道发送反馈消息;其中,所述第n预定操作为所述第n处理节点执行的一个或多个预定子操作;

当所述第n预定操作执行正确时,第n+1处理节点从所述消息通道中获取基于所述反馈消息形成的第n+1任务处理消息,并根据所述第n+1任务处理消息执行第n+1预定操作;

其中,所述第n+1处理节点为所述第n处理节点的下一操作节点;所述第n预定操作和所述第n+1预定操作为响应同一任务请求的响应操作;所述n为小于N的正整数;所述N为响应所述任务请求的处理节点的总个数;

当所述第n预定操作执行错误时,异常处理节点从所述消息通道中获取基于所述反馈消息形成的异常任务处理消息,并根据所述异常任务处理消息执行异常处理操作。

本发明实施例提供了一种任务处理系统,所述系统包括:

消息通道,用于传输消息;

第n处理节点,与所述消息通道连接,用于从所述消息通道获取第n任务处理消息,并根据所述第n任务处理消息执行第n预定操作,根据第n预定操作的执行结果向所述消息通道发送反馈消息;其中,所述第n预定操作为所述第n处理节点执行的一个或多个预定子操作;

第n+1处理节点,与所述消息通道连接,用于当所述第n预定操作执行正确时,从所述消息通道中获取基于所述反馈消息形成的第n+1任务处理消息,并根据所述第n+1任务处理消息执行第n+1预定操作;其中,所述第n+1预定操作为所述第n+1处理节点执行的一个或多个预定子操作;其中,所述第n+1处理节点为所述第n处理节点的下一操作节点;所述第n预定操作和所述第n+1预定操作为响应同一任务请求的响应操作;所述n为小于N的正整数;所述N为响应所述任务请求的处理节点的总个数;

异常处理节点,与所述消息通道连接,用于当所述第n预定操作执行错误时,从所述消息通道中获取基于所述反馈消息形成的异常任务处理消息,并根据所述异常任务处理消息执行异常处理操作。

采用本发明实施例所述技术方案,作为响应同一任务请求的第n处理节点以及第n+1处理节点,所述第n处理节点以及第n+1处理节点只需从消息通道获取任务处理消息,然后根据从消息通道获取的任务处理消息执行相应的预定操作,并向消息通道反馈执行相应的预定操作的执行结果,无需第n处理节点直接向第n+1处理节点发送任务处理消息,也无需第n处理节点与第n+1处理节点进行相互调用。相对于现有技术中第n处理节点与第n+1处理节点通过程序的上下文进行互相调用,当出现错误时系统无法获取异常信息来说,本申请引入异常处理节点来负责处理异常事件,由于不同处理节点之间是通过消息通道传输消息的,而不是由一个处理节点直接给到下一个处理节点;这样当出现错误时,该异常处理节点可以从消息通道中获取两个处理节点之间的传输的处理消息,进行错误分析;至少解决了现有技术中因不同处理节点之间的强耦合而引起的系统无法获取异常信息问题。

附图说明

图1为本发明实施例提供的任务处理方法的实现流程示意图;

图2为本发明实施例提供的三个处理节点执行某一任务请求的一种示意图;

图3为本发明实施例提供的向各处理节点投递任务处理消息的一种示意图;

图4为本发明实施例提供的向各处理节点投递任务处理消息的另一种示意图;

图5为本发明实施例提供的三个处理节点执行某一任务请求的另一种示意图;

图6为本发明实施例提供的三个处理节点执行某一任务请求的异常处理操作的一种示意图;

图7本发明实施例提供的查询任务执行情况的一种示意图;

图8本发明实施例提供的查询任务执行情况的另一种示意图;

图9为本发明实施例提供的调试节点备份各个处理节点的任务处理消息的示意图;

图10为本发明实施例提供的任务处理系统的组成结构示意图;

图11是本发明实施例中用于实现任务处理系统的服务器的一个可选的硬件结构示意图;

图12为本发明实施例提供的任务处理系统的一种硬件结构示意图;

图13为本发明实施例提供的一种任务处理系统的运维流程架构图。

具体实施方式

下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。

实施例一

本发明实施例提供一种任务处理方法,所述方法可应用于服务器侧,如图1所示,所述方法主要包括:

步骤101:第n处理节点从消息通道获取第n任务处理消息,并根据所述第n任务处理消息执行第n预定操作,根据第n预定操作的执行结果向所述消息通道发送反馈消息。

其中,所述n为小于N的正整数;所述N为响应某一任务请求的处理节点的总个数。

其中,所述第n任务处理消息包含有所述第n处理节点为响应某一任务请求所需执行的操作及执行所述操作对应的参数。

这里,所述所需执行的操作是指所述第n处理节点为响应某一任务请求所需执行的步骤。所述参数是指第n处理节点为响应某一任务请求所需执行的步骤所用到的参数;其中,所述参数可以包括所述第n处理节点的上一处理节点的处理结果。

例如,所述所需执行的内容包括:第n预定操作;所述第n预定操作为响应该任务请求的响应操作。

其中,所述第n预定操作为所述第n处理节点执行的一个或多个预定子操作。

也就是说,所述第n处理节点支持执行至少一个预定子操作,当所述第n处理节点执行不同的预定子操作时,能实现不同的功能。

举例来说,共有2个处理节点,每个处理节点均能执行多个预定子操作。第1处理节点可支持S1、S2两个预定子操作;其中,S1预定子操作为获取登录信息,S2预定子操作为根据鉴权结果判断是否允许进入某账号体系;第2个处理节点可支持S3、S4两个预定子操作;其中,S3预定子操作为对登录信息进行鉴权,返回鉴权结果;S4预定子操作为建立账号与密码的对应关系。那么,当接收到一登录某账号的任务请求时,第1个处理节点执行S1预定操作,即获取登录信息;第2处理节点执行S3预定操作,即对所述登录信息进行鉴权;第2处理节点执行S3预定操作,即对所述登录信息进行鉴权,返回鉴权结果;第3处理节点执行S2预定操作,即根据鉴权结果判断是否允许进入某账号体系。至此,通过第1处理节点以及第2处理节点执行相应的预定子操作,能完成该任务请求。

本实施例中,所述消息通道用于存储各个处理节点的任务处理消息,还用于接收各个处理节点的反馈消息。例如,所述消息通道包括消息队列、数据总线等各种传输通道。优选地,所述消息通道包括消息队列,所述消息队列是在消息的传输过程中保存消息的容器。

在一可选实施方式中,所述消息通道包括多个子消息通道,每一处理节点对应一个子消息通道,每一处理节点均可从与其对应的子消息通道中获取任务处理消息,并向与其对应的子消息通道发送反馈消息;所述多个子消息通道均与一个总消息通道相连接,所述总消息通道从各个子消息通道取出反馈消息,并基于反馈消息向各个子消息通道分配并发送任务处理消息。如此,由于各个子消息通道是相互独立的,便于每个处理节点识别和获取与其对应的任务处理消息。

步骤102:当所述第n预定操作执行正确时,第n+1处理节点从所述消息通道中获取基于所述反馈消息形成的第n+1任务处理消息,并根据所述第n+1任务处理消息执行第n+1预定操作。

其中,所述第n+1预定操作为所述第n+1处理节点执行的一个或多个预定子操作。

其中,所述第n+1处理节点为所述第n处理节点的下一处理节点;所述第n预定操作和所述第n+1预定操作为响应同一任务请求的响应操作。

举例来说,某一任务请求需要A处理节点、B处理节点、C处理节点协同完成。每一个处理节点所能实现的功能不同,例如,A处理节点可执行A1、A2、A3三种预定操作,不同的预定操作所带来的响应结果不同;B处理节点可执行B1、B2、B3、B4四种预定操作,不同的预定操作所带来的响应结果不同;C处理节点可执行C1、C2、C3三种预定操作,不同的预定操作所带来的响应结果不同。

如图2所示,执行某一任务请求时,A处理节点需要执行A3预定操作,B处理节点需要执行B2预定操作,C处理节点需要执行C1预定操作;且执行顺序为A3预定操作、B2预定操作、C1预定操作。因此,A处理节点从消息通道中获取A任务处理消息,当A处理节点执行A3预定操作的执行结果为执行正确时,B处理节点从消息通道中获取B任务处理消息,当B处理节点执行B2预定操作的执行结果为执行正确时,C处理节点从消息通道中获取C任务处理消息,当C处理节点执行C1预定操作的执行结果为执行正确时,所述任务请求执行完成。

再举例来说,任务请求1需要用到图2所示的A处理节点、B处理节点、C处理节点,且需要A处理节点执行A3预定操作,需要B处理节点执行B2预定操作,需要C处理节点执行C1预定操作;任务请求4需要用到图2所示的A处理节点、B处理节点,且需要A处理节点执行A2预定操作,需要B处理节点执行B1预定操作;若执行任务请求1时,A处理节点执行A3预定操作执行正确,B处理节点执行B2预定操作执行正确,此时C处理节点处于升级状态,任务请求1暂时无法完成,而此时,由于通过消息通道分配任务处理消息,可过一段时间后继续向C处理节点或向备用的C处理节点发送任务处理消息。在执行任务1的同时,通过消息通道向A处理节点分配执行A2预定操作的任务处理消息,待A处理节点分配执行A2预定操作正确后,向B处理节点分配执行B1预定操作的任务处理消息。显然,任务请求1的执行不构成对执行任务请求2的影响。

在一可选实施方式中,所述根据第n预定操作的执行结果向所述消息通道发送反馈消息之后,所述方法还包括:

控制节点基于所述反馈消息判断所述第n预定操作的执行结果是否执行正确,其中,所述反馈消息包括第n预定操作的执行结果;

当所述第n预定操作执行正确时,基于所述任务请求的任务处理清单向所述消息通道发送基于所述反馈消息形成的第n+1任务处理消息。

其中,所述反馈消息包括所述第n预定操作的执行结果。

其中,所述第n+1任务处理消息包括由所述第n+1处理节点执行的第n+1预定操作,所述第n+1任务处理消息是所述控制节点基于任务处理清单确定的。

其中,所述任务处理清单包括执行所述任务请求的N个所述处理节点,以及N个所述处理节点执行的预定操作的执行顺序。

如图3所示,系统接收到任务请求时,由控制节点根据所述任务请求制定任务处理清单,并基于所述任务处理清单向各处理节点分配任务处理消息,接收各处理节点返回的反馈消息;

也就是说,由控制节点来判断第n处理节点执行第n预定操作的执行结果是否执行正确,所述第n处理节点无需对其执行结果进行判断。第n处理节点仅需要从第n任务处理消息中获取其所要执行的预定操作以及其所要返回的执行参数,无需关心下一个节点由谁来操作。

在另一可选实施方式中,所述方法还包括:

所述第n处理节点判断所述第n预定操作是否执行正确;

当所述第n预定操作执行正确时,则根据第n预定操作的执行结果向所述消息通道反馈第一类消息;其中,所述第一类消息包括所述第n处理节点的执行结果、所述第n处理节点根据任务处理清单确定的第n+1处理节点的节点标识、以及所述任务处理清单;其中,所述任务处理清单包括执行所述任务请求所涉及的各个处理节点的节点标识,以及所述各个处理节点之间的执行顺序及预定操作。

如图4所示,系统接收到任务请求时,由控制节点根据所述任务请求制定任务处理清单,将所述任务处理清单通过消息通道发送至任务处理清单中的第一个处理节点,之后,将第一个处理节点反馈的第一类消息直接作为下一个处理节点的任务处理消息,通过所述消息通道发送至第一个处理节点指定的下一个处理节点,以此类推,所述控制节点无需根据各处理节点的反馈信息确定下一个处理节点的任务处理消息。

也就是说,由第n处理节点来判断第n处理节点执行第n预定操作的执行结果是否执行正确,所述第n处理节点根据任务处理清单确定下一个处理节点是谁,并指定将第一类消息发送至其所确定的第n+1处理节点,所述控制节点只需按照所述第n处理节点指定的投递对象将封装后的第一类消息,即将任务处理消息通过消息通道中发送至第n+1处理节点。

步骤103:当所述第n预定操作执行错误时,异常处理节点从所述消息通道中获取基于所述反馈消息形成的异常任务处理消息,并根据所述异常任务处理消息执行异常处理操作。

如此,通过一专门的处理节点来处理执行异常的任务请求,能够及时对处理异常的任务请求进行处理。通过一专门的处理节点来处理执行异常的任务请求,能够及时发现执行异常的问题,也能根据该问题做出及时应对。比如,所述异常处理节点将出现问题的处理节点所对应的任务处理消息通过消息通道发送至另一备用的能够执行该任务处理消息的处理节点,如此,当该备用处理节点的执行结果正确时,还能够继续执行该任务请求,该任务请求不会因中间某一环节出现错误而中止。

举例来说,任务请求1、任务请求2均需要用到图2所示的A处理节点、B处理节点、C处理节点;且均需要B处理节点执行B2预定操作,若执行任务请求1时,B处理节点执行B2预定操作出现异常,若不及时清理任务请求1产生的数据,则影响任务请求2的执行进度。而采用异常处理节点专门处理异常任务处理消息,由于及时对任务请求1所产生的数据进行了处理,不会对任务请求2的执行造成大的影响。

再举例来说,任务请求1需要用到图2所示的A处理节点、B处理节点、C处理节点,且需要A处理节点执行A3预定操作,需要B处理节点执行B2预定操作,需要C处理节点执行C1预定操作;若执行任务请求1时,B处理节点执行B2预定操作出现异常,则异常处理节点可以将通知消息通道向备用的B′处理节点发送任务处理消息,通知B′处理节点执行B2预定操作,如此,当B′处理节点执行B2预定操作的执行结果正确时,C处理节点能够继续执行C1预定操作,如此,不会因B处理节点的执行结果错误而导致任务请求1无法继续执行。

这里,所述步骤102与所述步骤103为并列关系。即步骤101之后,若当所述第n预定操作执行正确时,执行步骤102;若当所述第n预定操作执行错误时,执行步骤103。

在一可选实施方式中,所述根据第n预定操作的执行结果向所述消息通道发送反馈消息之后,所述方法还包括:

控制节点基于所述反馈消息判断所述第n预定操作的执行结果是否执行正确,其中,所述反馈消息包括第n预定操作的执行结果;

当所述第n预定操作执行错误时,控制节点通知系统中的异常处理节点,由异常处理节点基于任务处理清单向所述消息通道发送基于所述反馈消息形成的异常任务处理消息;其中,所述任务处理清单包括执行所述任务请求的N个所述处理节点,以及N个所述处理节点执行的预定操作的执行顺序。

在另一可选实施方式中,所述方法还包括:

所述第n处理节点判断所述第n预定操作是否执行正确;

当所述第n预定操作执行出现异常时,则根据第n预定操作的执行结果向所述消息通道反馈第二类消息;其中,所述第二类消息包括所述第n处理节点的执行结果、所述第n处理节点确定的异常处理节点、以及所述任务处理清单;

由所述第n处理节点确定的异常处理节点基于所述任务处理清单向所述消息通道发送基于所述第二类消息形成的异常任务处理消息。

这里,系统中的异常处理节点可以为多个。

继续以执行某一任务请求时,A处理节点需要执行A3预定操作,B处理节点需要执行B2预定操作,C处理节点需要执行C1预定操作;且执行顺序为A3预定操作、B2预定操作、C1预定操作为例进行说明。如图5所示,A处理节点从消息通道中获取A任务处理消息,当A处理节点执行A3预定操作的执行结果为执行正确时,B处理节点从消息通道中获取B任务处理消息,当B处理节点执行B2预定操作的执行结果为执行正确时,C处理节点从消息通道中获取C任务处理消息,当C处理节点执行C1预定操作的执行结果为执行错误时,异常处理节点从所述消息通道中获取基于C处理节点的反馈消息形成的异常任务处理消息,并根据所述异常任务处理消息执行异常处理操作。

在一实施方式中,所述基于所述反馈消息形成的异常任务处理消息,包括:

确定需要执行异常处理操作的各个处理节点及执行异常处理的顺序。

比如,所述异常处理操作,包括:将在执行所述任务请求过程中所产生的数据删除。

如此,当重复利用同一存储空间时,便于在执行其他任务请求时或重新执行所述任务请求时,之前所产生的与所述任务请求相关的数据对当前执行的任务请求造成干扰。

再比如,所述异常处理操作,包括:执行回滚操作。

这里,所述回滚操作是指将程序或数据恢复到上一次正确状态的行为。

继续以执行某一任务请求时,A处理节点需要执行A3预定操作,B处理节点需要执行B2预定操作,C处理节点需要执行C1预定操作;且执行顺序为A3预定操作、B2预定操作、C1预定操作为例进行说明。当A处理节点执行A3预定操作的执行结果为执行正确,B处理节点执行B2预定操作的执行结果为执行正确,C处理节点执行C1预定操作的执行结果为执行错误时,异常处理节点从所述消息通道中获取基于C处理节点的反馈消息形成的异常任务处理消息,并根据所述异常任务处理消息执行回滚操作操作,异常处理节点从所述消息通道中获取基于C处理节点的反馈消息形成的异常任务处理消息,并根据所述异常任务处理消息执行异常处理操作,其中,所述异常任务处理消息包括:C处理节点需要执行E1预定操作,B处理节点需要执行E1预定操作,A处理节点需要执行E1预定操作;且执行顺序为C处理节点、B处理节点、A处理节点,其中,所述E1预定操作表示回滚操作;当C处理节点执行E1预定操作完毕时,B处理节点执行E1预定操作完毕,A处理节点执行E1预定操作完毕时,针对该任务请求的回滚操作完成。

在一可选实施方式中,所述执行异常处理的顺序为:以当前执行任务请求出现异常的处理节点为起点,按照已执行所述任务请求的各个处理节点的执行顺序的倒序方式进行排序。

举例来说,如图6所示,异常处理节点从所述消息通道中获取基于C处理节点的反馈消息形成的异常任务处理消息,并根据所述异常任务处理消息执行异常处理操作,其中,所述异常任务处理消息包括:C处理节点需要执行E1预定操作,B处理节点需要执行E1预定操作,A处理节点需要执行E1预定操作;且执行顺序为C处理节点、B处理节点、A处理节点。如图6所示,C处理节点从消息通道中获取C异常任务处理消息,当C处理节点执行E1预定操作完毕时,B处理节点从消息通道中获取B异常任务处理消息,当B处理节点执行E1预定操作完毕时,A处理节点从消息通道中获取A异常任务处理消息,当A处理节点执行E1预定操作完毕时,针对该任务请求的异常处理操作完成。

上述方案中,可选地,所述方法还包括:

将各处理节点的处理结果发送至存储设备中,存储在所述存储设备的所述处理结果,用于响应查询所述任务请求的执行的查询请求。

上述方案中,可选地,所述方法还包括:

系统接收到任务请求时,控制节点估算完成所述任务请求所需时间;

当所需时间大于或等于预设时间阈值时,为发送所述任务请求的客户端分配任务标识码;其中,所述任务标识码,用于查询所述任务请求的处理结果。

如此,当完成客户端发送的任务请求所需时间较长时,可以为该客户端分配一任务标识码,提醒该客户端在多长时间之后可根据该任务标识码来查询该任务请求的执行情况。

当然,在一具体实施方式中,当所需时间小于预设时间阈值时,不为发送所述任务请求的客户端分配任务标识码。

或者,在一具体实施方式中,为发送所述任务请求的客户端分配任务标识码,但不向所述客户端发送所述任务标识码。

在一实施方式中,所述方法还包括:

检测客户端发送的查询请求;

响应所述查询请求,根据所述存储设备中存储的处理结果向客户端发送执行状态信息。

在一具体实施方式中,所述检测客户端发送的查询请求,包括:存储设备从客户端接收携带有所述任务标识码的查询请求。相应地,所述响应所述查询请求,从所述存储设备中获取处理结果,包括:所述存储设备依据所述任务标识码,查询与所述任务标识码对应的处理结果。这里,所述存储设备存储有任务标识码与处理结果的对应关系。

如图7所示,客户端M向存储设备发送有关任务请求1的查询请求,存储设备接收到查询请求后,从存储设备中查询与客户端M任务标识码对应的处理结果,并向客户端M返回所述执行状态信息。

如此,不用通过第三方来查询,客户端能直接与存储设备查询进行交互,通过任务标识码从存储设备查询任务请求的处理结果,方便客户端查询,提高了查询任务执行结果的便捷性。

在另一具体实施方式中,所述检测客户端发送的查询请求,包括:预定接口从客户端接收携带有客户端的标识信息的查询请求。相应地,所述响应所述查询请求,从所述存储设备中获取处理结果,包括:查询与所述标识信息对应的处理结果,并向所述客户端返回所述执行状态信息。这里,所述存储设备存储有客户端标识信息与处理结果的对应关系。

如图8所示,客户端A向预定接口发送有关任务请求1的查询请求,预定接口接收到查询请求后,从存储设备中查询与客户端A标识信息对应的处理结果,并向客户端A返回所述执行状态信息。

如此,客户端不能直接与存储设备查询进行交互,由预定接口从存储设备查询任务请求的处理结果,并由预定接口向客户端发送执行状态信息,由于客户端不能与存储设备接触,更能提高存储设备中存储的数据的安全性。

上述方案中,可选地,所述方法还包括:

调试节点对所述消息通道中的所有处理消息进行备份;其中,备份的所述处理消息用于进行错误调试。

如图9所示,调试节点中包含有备份的各个处理节点的处理消息,提供观察系统运行的窗口,便于工作人员开发、调试等,如将所述调试节点中备份的处理消息运行于Debug中,对编好的程序进行漏洞的排查,尽量消除错误或漏洞。

本实施例所述技术方案中,作为响应同一任务请求的第n处理节点以及第n+1处理节点,所述第n处理节点以及第n+1处理节点是从消息通道获取任务处理消息,根据从消息通道获取的任务处理消息执行相应的预定操作,无需第n处理节点与第n+1处理节点之间进行交互与调用,解决了现有技术中不同处理节点之间的强耦合问题,从而也有助于后续对各个处理节点的维护;与此同时,由异常处理节点来处理出现异常的任务请求,能够及时处理各种异常情况,如能实现数据完全回滚,即将在执行所述任务请求过程中所产生的数据删除。

实施例二

本发明实施例提供了一种任务处理系统,如图10所示,所述系统包括:

第n处理节点10,用于从消息通道获取第n任务处理消息,并根据所述第n任务处理消息执行第n预定操作,根据第n预定操作的执行结果向所述消息通道发送反馈消息;其中,所述第n预定操作为所述第n处理节点执行的一个或多个预定子操作;

第n+1处理节点20,用于当所述第n预定操作执行正确时,从所述消息通道中获取基于所述反馈消息形成的第n+1任务处理消息,并根据所述第n+1任务处理消息执行第n+1预定操作;其中,所述第n+1预定操作为所述第n+1处理节点执行的一个或多个预定子操作;

其中,所述第n+1处理节点为所述第n处理节点的下一操作节点;所述第n预定操作和所述第n+1预定操作为响应同一任务请求的响应操作;所述n为小于N的正整数;所述N为响应所述任务请求的处理节点的总个数。

异常处理节点30,用于当所述第n预定操作执行错误时,从所述消息通道中获取基于所述反馈消息形成的异常任务处理消息,并根据所述异常任务处理消息执行异常处理操作。

在一可选实施方式中,所述系统还包括:

控制节点40,用于:

在所述第n处理节点根据第n预定操作的执行结果向所述消息通道发送反馈消息之后,基于所述反馈消息判断所述第n预定操作的执行结果是否执行正确,其中,所述反馈消息包括第n预定操作的执行结果;

当所述第n预定操作执行正确时,基于所述任务请求的任务处理清单向所述消息通道发送基于所述反馈消息形成的第n+1任务处理消息;其中,所述任务处理清单包括执行所述任务请求的N个所述处理节点,以及N个所述处理节点执行的预定操作的执行顺序;

当所述第n预定操作执行错误时,通知异常处理节点30,由异常处理节点30基于所述任务处理清单向所述消息通道发送基于所述反馈消息形成的异常任务处理消息。

在一具体实施方式中,所述第n处理节点10,还用于:

判断所述第n预定操作是否执行正确;

当所述第n预定操作执行正确时,则根据第n预定操作的执行结果向所述消息通道反馈第一类消息;其中,所述第一类消息包括所述第n处理节点的执行结果、所述第n处理节点根据任务处理清单确定的第n+1处理节点的节点标识、以及所述任务处理清单;其中,所述任务处理清单包括执行所述任务请求所涉及的各个处理节点的节点标识,以及所述各个处理节点之间的执行顺序及预定操作。

在另一具体实施方式中,所述第n处理节点10,还用于:

判断所述第n预定操作是否执行正确;

当所述第n预定操作执行出现异常时,则根据第n预定操作的执行结果向所述消息通道反馈第二类消息;其中,所述第二类消息包括所述第n处理节点的执行结果、所述第n处理节点确定的异常处理节点、以及所述任务处理清单。

在一具体实施方式中,所述异常处理节点30,还用于:

确定需要执行异常处理操作的各个处理节点及执行异常处理的顺序。

在一可选实施方式中,所述系统还包括:

存储设备50,用于存储各处理节点发送的处理结果,存储在所述存储设备的所述处理结果,用于响应查询所述任务请求的执行的查询请求。

在一可选实施方式中,所述系统还包括:

检测节点60,用于检测客户端发送的查询请求;

响应节点70,用于响应所述查询请求,根据所述存储设备中存储的处理结果向客户端发送执行状态信息。

在一具体实施方式中,所述系统还包括:

分配节点80,用于:

接收到任务请求时,估算完成所述任务请求所需时间;

当所需时间大于或等于预设时间阈值时,为发送所述任务请求的客户端分配任务标识码;其中,所述任务标识码,用于查询所述任务请求的处理结果。

在一具体实施方式中,所述检测节点60,还用于通过存储设备从客户端接收携带有所述任务标识码的查询请求;

所述响应节点70,还用于通过所述存储设备依据所述任务标识码,查询与所述任务标识码对应的处理结果。

在另一具体实施方式中,所述检测节点60,还用于通过预定接口从客户端接收携带有客户端的标识信息的查询请求;

所述响应节点70,还用于通所述预定接口查询与所述标识信息对应的处理结果,并向所述客户端返回所述执行状态信息。

在一可选实施方式中,所述系统还包括:

调试节点90,用于对所述消息通道中的所有处理消息进行备份;其中,备份的所述处理消息用于进行错误调试。

本领域技术人员应当理解,本实施例的任务处理系统中各节点的功能,可参照前述任务处理方法的相关描述而理解。

实际应用中,上述第n处理节点10、第n+1处理节点20、异常处理节点30、控制节点40、检测节点60、响应节点70、分配节点80、调试节点90的具体结构均可对应于处理器或服务器。所述处理器具体的结构可以为中央处理器(CPU,Central Processing Unit)、微处理器(MCU,Micro Controller Unit)、数字信号处理器(DSP,Digital Signal Processing)或可编程逻辑器件(PLC,Programmable Logic Controller)等具有处理功能的电子元器件或电子元器件的集合。其中,所述处理器包括可执行代码,所述可执行代码存储在存储介质中,所述处理器可以通过总线等通信接口与所述存储介质中相连,在执行具体的各单元的对应功能时,从所述存储介质中读取并运行所述可执行代码。所述存储介质用于存储所述可执行代码的部分优选为非瞬间存储介质。所述存储设备50可以是各个种类型的存储器或具有存储功能的服务器,如数据库。

实际应用中,任务处理系统中的各功能模块可以由服务器中的硬件资源协同实现,如处理器等计算资源、通信资源(如用于支持实现各种方式的通信)实现。

图11示例性示出了服务器的一个可选的硬件结构示意图,包括处理器11、输入/输出接口13(例如显示屏、触摸屏、扬声器),存储介质14以及网络接口12,组件可以经系统总线15连接通信。相应地,服务器10的存储介质14中存储有用于执行本发明实施例提供的任务处理方法的可执行指令。

其中,所述存储介质14可以是移动存储装置、随机存取存储器(RAM,Random Access Memory)、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。优选地,所述存储介质14可为非易失性存储介质。

其中,处理器11可以是CPU、MCU、DSP、PLC,还可以是处理电路,例如,专用集成电路(ASIC,Application Specific Integrated Circuits)。

具体地,所述处理器11通过所述系统总线15从所述存储介质14中读取并执行任务处理方法的可执行指令,可执行如下步骤:

通知第n处理节点从消息通道获取第n任务处理消息,并根据所述第n任务处理消息执行第n预定操作,根据第n预定操作的执行结果向所述消息通道发送反馈消息;其中,所述第n预定操作为所述第n处理节点执行的一个或多个预定子操作;当所述第n预定操作执行正确时,通知第n+1处理节点从所述消息通道中获取基于所述反馈消息形成的第n+1任务处理消息,并根据所述第n+1任务处理消息执行第n+1预定操作;其中,所述第n+1预定操作为所述第n+1处理节点执行的一个或多个预定子操作;当所述第n预定操作执行错误时,通知异常处理节点从所述消息通道中获取基于所述反馈消息形成的异常任务处理消息,并根据所述异常任务处理消息执行异常处理操作;其中,所述第n+1处理节点为所述第n处理节点的下一操作节点;所述第n预定操作和所述第n+1预定操作为响应同一任务请求的响应操作;所述n为小于N的正整数;所述N为响应所述任务请求的处理节点的总个数。

本实施例所述的任务处理系统,解决了现有技术中不同处理节点之间的强耦合问题,从而也有助于后续对各个处理节点的维护;与此同时,由异常处理节点来处理出现异常的任务请求,能够及时处理各种异常情况,如能实现数据完全回滚,即将在执行所述任务请求过程中所产生的数据删除。

实施例三

上述任务处理系统可通过硬件来实现,图11给出了任务处理系统的一种硬件结构示意图,如图11所示,包括多个服务器以及多个存储设备;其中,

所述服务器分为多类,包括:

第一类服务器为分配节点,图中服务器a表示分配节点,分配节点负责接收到客户端发送的任务请求时,估算完成所述任务请求所需时间;当所需时间大于或等于预设时间阈值时,为发送所述任务请求的客户端分配任务标识码;其中,所述任务标识码,用于查询所述任务请求的处理结果;

第二类服务器为控制节点,图中服务器b表示控制节点,控制节点负责消息通道的管理;还负责基于客户端发送的任务请求生成任务处理清单,以及通过消息通道向各个处理节点分配任务处理消息;获取各个处理节点发送到消息通道中的反馈消息;

第三类服务器为常规处理节点,图中服务器n、n+1表示响应同一任务请求的第n处理节点以及第n+1处理节点,所述第n处理节点以及第n+1处理节点负责从消息通道获取任务处理消息,根据从消息通道获取的任务处理消息执行相应的预定操作,并根据预定操作的执行结果向所述消息通道发送反馈消息;

第四类服务器为异常处理节点,图中服务器c表示异常处理节点;异常处理节点,负责当第n处理节点或第n+1处理节点执行预定操作的执行结果为执行错误时,从所述消息通道中获取基于这类预定操作的执行结果为执行错误的反馈消息形成的异常任务处理消息,并根据所述异常任务处理消息执行异常处理操作;

第五类服务器为检测节点,图中服务器d表示检测节点;检测节点负责检测客户端发送的查询请求;

第六类服务器为响应节点,图中服务器e表示响应节点;响应节点负责响应所述查询请求,根据第一存储设备中存储的处理结果向客户端发送执行状态信息;

第七类服务器为调试节点,图中服务器f表示调试节点;调试节点负责根据第二存储设备中备份的消息通道中的处理消息进行调试;

所述第一存储设备,用于存储各处理节点发送的处理结果,存储在所述存储设备的所述处理结果,可用于响应查询所述任务请求的执行的查询请求;

所述第二存储设备,用于备份消息通道中的所有处理消息,以供调试节点进行调试。

从图11可以看出,客户端根据分配节点为其分配的任务标识码,通过检测节点与响应节点能与第一存储设备查询进行交互,通过任务标识码从存储设备查询任务请求的处理结果,方便客户端查询,提高了查询任务执行结果的便捷性。作为响应同一任务请求的第n处理节点以及第n+1处理节点,所述第n处理节点以及第n+1处理节点只需从消息通道获取任务处理消息,然后根据从消息通道获取的任务处理消息执行相应的预定操作,并向消息通道反馈执行相应的预定操作的执行结果,无需第n处理节点直接向第n+1处理节点发送任务处理消息,也无需第n处理节点与第n+1处理节点进行相互调用。本系统通过异常处理节点来负责处理异常事件,由于不同处理节点之间是通过消息通道传输消息的,而不是由一个处理节点直接给到下一个处理节点;这样当出现错误时,该异常处理节点可以从消息通道中获取两个处理节点之间的传输的处理消息,进行错误分析;至少解决了现有技术中因不同处理节点之间的强耦合而引起的系统无法获取异常信息问题。调试节点从第二处理设备中获取备份的各个处理节点的处理消息,可提供观察系统运行的窗口,便于工作人员开发、调试等。

实施例四

图12为本发明实施例提供的一种任务处理系统的运维流程架构图,如图12所示,该架构主要包括三大部分:

第一部分为接入层,所述接入层包括:接口和任务请求处理单元;

其中,所述接口是整个系统提供的功能性接口,供web页面或其它系统调用。

其中,所述任务请求处理单元,负责对所接收到的任务请求进行分析,将所述任务请求拆分成多个处理步骤,其中,每一处理步骤由一个处理模块来实现。

具体地,所述任务请求处理单元的工作原理:接收到功能请求后,将其拆成处理模块中内部子系统的原子接口,并根据任务请求排列成有序的步骤,如将功能请求拆解成步骤(step)1、step2、step3,将其作为一个任务处理消息投递至消息队列中。其中,所述处理模块包括内部子系统和执行器。

可选地,所述任务请求处理单元,还负责分配任务标识码。所述接口,还负责将所述任务标识码返回给调用方。例如,所述调用方是客户端。所述调用方可基于所述任务标识码查询处理结果。

实际应用中,接收任务请求的接口与返回处理结果的接口可以合成一个接口。

第二部分为传输层,所述传输层包括:消息队列;

其中,所述消息队列,是驱动整个系统运转的通道。各个处理模块通过消息队列进行通信。

第三部分为执行层,所述执行层包括:常规执行器、以及与常规执行器对应的子系统。

其中,所述常规执行器是原子接口执行器,每个常规执行器对应一个内部子系统。这里,所述原子接口是指能够反馈执行成功或执行失败信息的接口,由所述原子接口输出的信息是明确的信息。

所述常规执行器,负责监听消息队列中属于自己的任务处理消息,任务处理消息由提供任务请求处理单元投递或者其它上游的常规执行器投递。常规执行器收到属于自己的任务处理消息后,进行个性化的逻辑处理,处理完成后将处理结果写到存储设备如translog中,供调用方查询;常规执行器还负责将反馈消息重新投放到消息队列中。

可选地,所述执行层还包括:异常处理执行器(Error Executor)、备份执行器(Debug Executor)。

其中,所述异常处理执行器,负责从所述消息通道中获取基于所述反馈消息形成的异常任务处理消息,并根据所述异常任务处理消息执行异常处理操作。

所有的常规执行器执行发生错误,会将消息的接收者设置为异常处理执行器,异常处理执行器负责确定异常任务处理消息,重新投递到消息队列中去。例如,当第三执行器执行step3出现异常时,通知第三执行器、第二执行器、第一执行器,按照step3->step2->step1,依次执行回滚操作。

另外,所述异常处理执行器,可以作为观察系统异常的窗口,不用到各个子系统上到处查日志,便于定位出现异常的节点。

备份执行器,负责对所述消息通道中的所有处理消息进行备份,用于开发调试,所述备份执行器同样可作为一个观察整个大系统运行的窗口。

与常规执行器对应的内部子系统,是提供具体特定服务的运维系统,负责与智能软件、智能设备、智能机器人、或计算机系统等进行交互,以确保每一步骤的可实现。

可选地,所述架构还包括:

第四部分,所述第四部分包括:存储设备(如TransLog)。

其中,所述存储设备负责各执行器发送的处理结果,存储在所述存储设备的所述处理结果,用于响应查询所述任务请求的执行的查询请求。

具体地,所述存储设备可以使用nosql存储或者DB存储。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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