数据处理架构中消息的处理方法和装置与流程

文档序号:12595477阅读:292来源:国知局
数据处理架构中消息的处理方法和装置与流程

本申请涉及计算机领域,具体而言,涉及一种数据处理架构中消息的处理方法和装置。



背景技术:

数据处理架构(TPL Dataflow)是微软提供的进行流式处理的框架,适合需要高并发、高性能的应用程序。TPL Dataflow中最基础的组件是块(Block),Block相当于一个处理单元,每个Block定义了如何进行数据处理的逻辑。将多个Block链接起来,就组成了系统处理管道,只需要在管道开始处输入数据,接下来整个管道自动开始运行,从一个Block开始执行自己的处理逻辑,处理完成后将得到的数据投递到下一个或多个Block,最终完成整个管道的处理。

参见图1,分词程序的处理管道的输入可以是多个文件,首先通过文件读取Block读取文件,并将文件传递至下一层Block(即,图1中分行Block);分行Block再将文件传递至下一层Block(即,分词Block);分词Block再将文件传递至单词计数Block。其中,文件读取Block,分行Block,分词Block和单词计数Block构成一个完整的数据处理管道。

传统的TPL Dataflow,将一个Block链接到另外一个Block时,可以指定链接条件,只有消息满足该链接条件时,消息才会从一个Block投递到另外一个Block。

如图2所示,文件读取Block负责读取文件,将文件内容投递到下一层Block(即,分行Block)。其中,设置的文件读取Block和分行Block之间的链接条件为:文件行数是奇数和文件行数是偶数。当文件读取Block读取到的文件行数为奇数时,将文件内容投递到分行Block1;当文件行数为偶数时,将文件内容投递到分行Block2。

如果在实现文件读取Block和分行Block之间的链接时指定多个条件,若遇到不满足所有条件的消息时,则消息无法投递。该消息会一直驻留在源Block中,Dataflow停止任何处理,进入假死状态。

例如,如图3所示,文件读取Block和分行Block之间的链接条件为行数%3=1和行数%3=0,当获取到的消息为文件行数%3=2时,确定该消息不满足上述任何链接条件, 此时,该消息不会投递到任何一个Block,此时文件内容无法投递,Dataflow假死。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本申请实施例提供了一种数据处理架构中消息的处理方法和装置,以至少解决现有技术中由于不满足链接条件导致整个数据处理架构进入假死状态的技术问题。

根据本申请实施例的一个方面,提供了一种数据处理架构中消息的处理方法,包括:获取目标消息,其中,所述目标消息为指示第一处理块链接至第二处理块的消息,所述第二处理块为所述第一处理块的下一层块;判断所述目标消息是否满足初始链接条件,其中,所述初始链接条件为所述第一处理块链接到所述第二处理块的条件;以及当判断出所述目标消息不满足所述初始链接条件时,将所述目标消息投递至目标处理块中。

进一步地,所述目标处理块包括第一预设处理块,当判断出所述目标消息不满足所述初始链接条件时,将所述目标消息投递至目标处理块中包括:获取所述初始链接条件,其中,每个所述第一处理块和每个所述第二处理块之间包含一个所述初始链接条件;根据所述初始链接条件生成目标链接条件;以及当确定所述目标消息满足所述目标链接条件时,将所述目标消息投递至所述第一预设处理块中,通过所述第一预设处理块按照预先定义处理规则对所述目标消息进行处理。

进一步地,当所述初始链接条件的数量为一个时,根据所述初始链接条件生成目标链接条件包括:将所述初始链接条件进行逻辑非运算,得到所述目标链接条件。

进一步地,当所述初始链接条件的数量为多个时,根据所述初始链接条件生成目标链接条件包括:将多个所述初始链接条件进行逻辑非运算,得到多个中间链接条件;以及依次将运算之后的多个所述中间链接条件进行逻辑与运算,得到所述目标链接条件。

进一步地,所述目标处理块包括第二预设处理块,当判断出所述目标消息不满足所述初始链接条件时,将所述目标消息投递至目标处理块中包括:判断获取到的所述目标消息是否携带第一标识,其中,所述第一标识为表示忽略所述目标消息的标识;以及在判断出所述目标消息中携带所述第一标识情况下,将所述目标消息投递至所述第二预设处理块中,其中,所述第二预设处理块为对所述目标消息不进行任何操作的块。

进一步地,所述目标处理块包括第三预设处理块,当判断出所述目标消息不满足 所述初始链接条件时,将所述目标消息投递至目标处理块中包括:判断获取到的所述目标消息是否携带第二标识,其中,所述第二标识为表示记录所述目标消息的错误信息的标识;以及在判断出所述目标消息中携带所述第二标识情况下,将所述目标消息投递至所述第三预设处理块中,其中,所述第三预设处理块为记录所述错误信息的块。

根据本申请实施例的另一方面,还提供了一种数据处理架构中消息的处理装置,包括:获取单元,用于获取目标消息,其中,所述目标消息为指示第一处理块链接至第二处理块的消息,所述第二处理块为所述第一处理块的下一层块;判断单元,用于判断所述目标消息是否满足初始链接条件,其中,所述初始链接条件为所述第一处理块链接到所述第二处理块的条件;以及投递单元,用于当判断出所述目标消息不满足所述初始链接条件时,将所述目标消息投递至目标处理块中。

进一步地,所述目标处理块包括第一预设处理块,所述投递单元包括:第一获取模块,用于获取所述初始链接条件,其中,每个所述第一处理块和每个所述第二处理块之间包含一个所述初始链接条件;生成模块,用于根据所述初始链接条件生成目标链接条件;以及第一投递模块,用于当确定所述目标消息满足所述目标链接条件时,将所述目标消息投递至所述第一预设处理块中,通过所述第一预设处理块按照预先定义处理规则对所述目标消息进行处理。

进一步地,所述目标处理块包括第二预设处理块,所述投递单元包括:第一判断模块,用于判断获取到的所述目标消息是否携带第一标识,其中,所述第一标识为表示忽略所述目标消息的标识;以及第二投递模块,用于在判断出所述目标消息中携带所述第一标识情况下,将所述目标消息投递至所述第二预设处理块中,其中,所述第二预设处理块为对所述目标消息不进行任何操作的块。

进一步地,所述目标处理块包括第三预设处理块,所述投递单元包括:第二判断模块,用于判断获取到的所述目标消息是否携带第二标识,其中,所述第二标识为表示记录所述目标消息的错误信息的标识;以及第三投递模块,用于在判断出所述目标消息中携带所述第二标识情况下,将所述目标消息投递至所述第三预设处理块中,其中,所述第三预设处理块为记录所述错误信息的块。

在本申请实施例中,采用获取目标消息,其中,所述目标消息为指示第一处理块链接至第二处理块的消息,所述第二处理块为所述第一处理块的下一层块;判断所述目标消息是否满足初始链接条件,其中,所述初始链接条件为所述第一处理块链接到所述第二处理块的条件;当判断出所述目标消息不满足所述初始链接条件时,将所述目标消息投递至目标处理块中的方式。通过判断获取到的目标消息是否满足链接条件,当判断出目标消息不满足链接条件时,则将该目标消息投递至指定处理块中,相对于 现有技术中遇到不满足链接条件的目标消息时,数据处理架构将会停止处理,进入假死状态,达到了不会由于消息不满足链接条件而导致数据处理架构进入假死状态的目的,进而解决了现有技术中由于不满足链接条件导致整个数据处理架构进入假死状态的技术问题。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据现有技术的一种数据处理架构的示意图;

图2是根据现有技术的另一种可选地数据处理架构的示意图;

图3是根据现有技术的另一种可选地数据处理架构的示意图;

图4是根据本申请实施例的一种数据处理架构中消息的处理方法的流程图;

图5是根据本申请实施例的一种数据处理架构中消息的处理装置的示意图;以及

图6是根据本申请实施例的另一种可选地数据处理架构中消息的处理装置的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

根据本申请实施例,提供了一种数据处理架构中消息的处理方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图4是根据本申请实施例的一种数据处理架构中消息的处理方法的流程图,如图4所示,该处理方法包括如下步骤S102至步骤S106:

步骤S102,获取目标消息,其中,目标消息为指示第一处理块链接至第二处理块的消息,第二处理块为第一处理块的下一层块。

假设,第一处理块(Block1)向第二处理块(Block2)投递多个待处理的文件或多个待处理的文本时,则该目标消息可以为该多个待处理的文件或多个待处理的文本。

步骤S104,判断目标消息是否满足初始链接条件,其中,初始链接条件为第一处理块链接到第二处理块的条件。

在本申请实施例中,当将多个处理块(Block)进行链接时,即记录所有链接条件。

如图2和图3所示,初始链接条件可以为:文本的行数是奇数(例如,行数%3=0),文本的行数是偶数(例如,行数%3=1),该条件也即图2和图3中文件读取Block链接到下一层Block(例如,分行Block1或Block2)的条件。

假设,目标消息为多个待处理的文本,其中,待处理文本的行数可以为奇数行,还可以为偶数行;初始链接条件为:行数%3=0,即文本行数除以3,并取余等于0的文本可以进行投递;行数%3=1,即文本行数除以3,并取余等于1的文本可以进行投递。通过判断可知多个待处理文本(即,目标消息)中行数%3=0的文本和行数%3=1的文本满足初始链接条件,多个待处理文本(即,目标消息)中行数%3=2的文本则不满足初始链接条件。

步骤S106,当判断出目标消息不满足初始链接条件时,将目标消息投递至目标处理块中。

当判断出目标消息满足初始链接条件时,可以返回true,并将目标消息投递至下一层处理块中;当判断出目标消息不满足初始链接条件时,可以返回false,并将目标消息投递至目标处理块。

例如,通过步骤S104可知多个待处理文本(即,目标消息)中行数%3=2的文本不满足初始链接条件,返回false,并将该待处理文本投递至目标处理块中。避免消息由于不满足初始链接条件,而导致数据处理架构进入假死的状态。

在本申请实施例中,通过判断获取到的目标消息是否满足链接条件,当判断出目标消息不满足链接条件时,则将该目标消息投递至指定处理块中,相对于现有技术中遇到不满足链接条件的目标消息时,数据处理架构将会停止处理,进入假死状态,达到了不会由于消息不满足链接条件而导致数据处理架构进入假死状态的目的,进而解决了现有技术中由于不满足链接条件导致整个数据处理架构进入假死状态的技术问题。

在本申请提供的数据处理架构中消息的处理方法中,当判断出目标消息不满足初始链接条件时,将目标消息投递至目标处理块中包括主要包括三种方式,在下述实施例中对这三种方式进行说明。

在本申请下述实施例中,目标消息均为多个待处理文本为例进行说明,初始链接条件以文本行数除以一个正整数,然后取余数(例如,文本行数%n,其中,n为正整数)为例进行说明。

方式一

目标处理块包括第一预设处理块,当判断出目标消息不满足初始链接条件时,将目标消息投递至目标处理块中包括如下步骤S1061至步骤S1065:

步骤S1061,获取初始链接条件,其中,每个第一处理块和每个第二处理块之间包含一个初始链接条件。

步骤S1063,根据初始链接条件生成目标链接条件。

步骤S1065,当确定目标消息满足目标链接条件时,将目标消息投递至第一预设处理块中,通过第一预设处理块按照预先定义处理规则对目标消息进行处理。

当判断出目标消息不满足初始链接条件时,用户可以通过上述步骤所描述的方法将该目标消息投递至指定的处理块即第一预设处理块中。

具体地,当确定多个目标消息中存在不满足所有初始链接条件的消息时,获取所有初始链接条件,则根据所有的初始链接条件生成新的链接条件(即,目标链接条件)。其中,生成的目标链接条件可以为一个,还可以为多个,具体数量由所有的初始链接条件决定。

若该不满足所有初始链接条件的目标消息满足目标链接条件时,则可将该目标消息投递至用户第一预设处理块中,其中,该第一预设处理块可以为第一处理块的下一层处理块,并且第一预设处理块和第一处理块之间的链接条件即为该目标消息所满足的目标链接条件。

需要说明的是,第一预设处理块与第一处理块和第二处理块均不相同,第一预设处理块不参与对数据的处理,仅是按照预先定义处理规则对目标消息进行处理,例如,预先定义处理规则可以为该第一预设处理块不参与对目标消息进行处理,而是将该目标消息记录到日志中,然后忽略该消息。

可选地,当初始链接条件的数量为一个时,根据初始链接条件生成目标链接条件包括步骤S1:将初始链接条件进行逻辑非运算,得到目标链接条件。

例如,所有初始链接条件为Func1:文本行数%2=0,多个待处理文本(即,多个目标消息)中包括文本行数%2=0的文本和文本行数%2=1的文本。通过判断可知,“文本行数%2=1”不满足初始链接条件,则根据初始链接条件Func1:文本行数%2=0生成新的目标链接条件。

目标链接条件的生成方法为对初始链接条件进行逻辑非运算,即:Func1(message)!=true,也即行数%2!=0,那么经过逻辑非运算之后,得到的目标链接条件为Func2:文本行数%2=1。再次判断可知,目标消息“文本行数%2=1”满足目标链接条件Func2:文本行数%2=1,那么将该目标链接条件投递至与目标链接条件对应的处理块中(即,第一预设处理块)。其中,第一预设处理块并未参与对目标消息的处理。

可选地,当初始链接条件的数量为多个时,根据初始链接条件生成目标链接条件包括如下步骤S3至步骤S5:

步骤S3,将多个初始链接条件进行逻辑非运算,得到多个中间链接条件。

步骤S5,依次将运算之后的多个中间链接条件进行逻辑与运算,得到目标链接条件。

例如,所有初始链接条件为:Func1文本行数%3!=0和Func2文本行数%3!=1,多个待处理文本(即,目标消息)中包括文本行数%3=0的文本,文本行数%3=1的文本,以及文本行数%3=2的文本。通过判断可知,文本行数%3=2不满足初始链接条件,则根据初始链接条件Func1文本行数%3=0和Func2文本行数%3!=1生成新的目标链接条件。

目标链接条件的生成方法为对初始链接条件进行逻辑非运算,即:Func1(message)!=true,也即行数%3!=0,Func2(message)!=true,也即行数%3!=1;然后再对Func1(message)!=true和Func2(message)!=true进行逻辑与运算,即Func1(message)!=true&&Func2(message)!=true,那么经过逻辑非运算和逻辑与运算之后,得到的目标链接条件为Func3:文本行数%3=2。再次判断可知,目标消息“文本行数%3=2”满足目标链接条件Func3:文本行数%3=2,那么将该目标链接条件投递 至与目标链接条件对应的处理块中(即,第一预设处理块)。其中,第一预设处理块并未参与对目标消息的处理。

方式二

目标处理块包括第二预设处理块,当判断出目标消息不满足初始链接条件时,将目标消息投递至目标处理块中包括如下步骤S1067至步骤S1069:

步骤S1067,判断获取到的目标消息是否携带第一标识,其中,第一标识为表示忽略目标消息的标识。

步骤S1069,在判断出目标消息中携带第一标识情况下,将目标消息投递至第二预设处理块中,其中,第二预设处理块为对目标消息不进行任何操作的块。

当判断出目标消息不满足初始链接条件时,除了方式一所描述的方法外,用户还可以通过上述方式二所描述的方法将该目标消息投递至指定的处理块即第二预设处理块。

用户在对不满足初始链接条件的目标消息进行处理的原始程序中已设置该目标消息的投递方式(例如方式一或方式二),为了使得系统识别用户选取为方式一,还是方式二,可在目标消息中添加标识,通过标识的方式通知系统采用方式一,还是方式二实现目标消息的投递。例如,标识可以为“00”、“01”、“10”或“11”,通过该标识来区分用户选取的为方式一还是方式二。

当采用方式二对目标消息进行投递时,可标记将该目标消息投递至第二预设处理块中,其中,第二预设处理块命名为Null Block,为忽略目标消息的处理块,即在遇到不满足任何条件的目标消息时不做任何处理,直接忽略。

方式三

目标处理块包括第三预设处理块,当判断出目标消息不满足初始链接条件时,将目标消息投递至目标处理块中包括步骤S10611至步骤S10613:

步骤S10611,判断获取到的目标消息是否携带第二标识,其中,第二标识为表示记录目标消息的错误信息的标识。

步骤S10613,在判断出目标消息中携带第二标识情况下,将目标消息投递至第三预设处理块中,其中,第三预设处理块为记录所述错误信息的块。

当判断出目标消息不满足初始链接条件时,除了上述方式一和方式二所描述的处理方法外,用户还可以通过上述方式三所描述的处理方法将该目标消息投递至指定的 处理块即第三预设处理块中。

用户在对不满足初始链接条件的目标消息进行处理的原始程序中已设置该目标消息的投递方式(例如方式一、方式二或方式三),为了使得系统识别用户选取为方式一,方式二,还是方式三,可在目标消息中添加标识,通过标识的方式通知系统采用方式一,方式二,还是方式三,来实现目标消息的投递。例如,标识可以为“00”、“01”、“10”或“11”,通过该标识来区分用户选取的为方式一、方式二,还是方式三。

当采用方式三对目标消息进行投递时,可标记将该目标消息投递至第三预设处理块中,其中,第三预设处理块可命名为Error Block,该处理块用于记录对目标消息进行处理过程中出现的异常信息,并抛出异常。例如,目标消息中存在异常的信息,则将该异常的目标消息抛出。

本申请提供的数据处理架构中消息的处理方法,通过采用上述方式一、方式二和方式三,实现对不满足初始链接条件的目标消息进行处理,以避免由于消息无法处理,导致数据处理架构进入假死的状态。需要说明的是,若存在多个目标消息不满足初始链接条件时,则每个不满足初始链接条件的目标消息均采用相同的方式进行投递,例如,同时采用方式一进行投递,或者同时采用方式二进行投递,又或者同时采用方式三进行投递。也可以理解为,在数据处理架构中,第一预设处理块、第二预设处理块(Null Block)、第三预设处理块(Error Block)不会同时存在。

本申请实施例还提供了一种数据处理架构中消息的处理装置,该处理装置主要用于执行本申请实施例上述内容所提供的数据处理架构中消息的处理方法,以下对本申请实施例送提供的数据处理架构中消息的处理装置做具体介绍。

图5是根据本申请实施例的一种数据处理架构中消息的处理装置的示意图,如图5所示,该数据处理架构中消息的处理装置主要包括获取单元10、判断单元20和投递单元30,其中:

获取单元10,用于获取目标消息,其中,目标消息为指示第一处理块链接至第二处理块的消息,第二处理块为第一处理块的下一层块。

假设,第一处理块(Block1)向第二处理块(Block2)投递多个待处理的文件或多个待处理的文本时,则该目标消息可以为该多个待处理的文件或多个待处理的文本。

判断单元20,用于判断目标消息是否满足初始链接条件,其中,初始链接条件为第一处理块链接到第二处理块的条件。

在本申请实施例中,当将多个处理块(Block)进行链接时,即记录所有链接条件。

如上述图2和图3所示,初始链接条件可以为:文本的行数是奇数(例如,行数%3=0),文本的行数是偶数(例如,行数%3=1),该条件也即上述图2和图3中文件读取Block链接到下一层Block(例如,分行Block1或分行Block2)的条件。

假设,目标消息为多个待处理的文本,其中,待处理文本的行数可以为奇数行,还可以为偶数行;初始链接条件为:行数%3=0,即文本行数除以3,并取余等于0的文本可以进行投递;行数%3=1,即文本行数除以3,并取余等于1的文本可以进行投递。通过判断可知多个待处理文本(即,目标消息)中行数%3=0的文本和行数%3=1的文本满足初始链接条件,多个待处理文本(即,目标消息)中行数%3=2的文本则不满足初始链接条件。

投递单元30,用于当判断出目标消息不满足初始链接条件时,将目标消息投递至目标处理块中。

当判断出目标消息满足初始链接条件时,可以返回true,并将目标消息投递至下一层处理块中;当判断出目标消息不满足初始链接条件时,可以返回false,并将目标消息投递至目标处理块。

例如,通过判断单元判断可知多个待处理文本(即,目标消息)中行数%3=2的文本不满足初始链接条件,返回false,并将该待处理文本投递至目标处理块中。避免消息由于不满足初始链接条件,而导致数据处理架构进入假死的状态。

在本申请实施例中,通过判断获取到的目标消息是否满足链接条件,当判断出目标消息不满足链接条件时,则将该目标消息投递至指定处理块中,相对于现有技术中遇到不满足链接条件的目标消息时,数据处理架构将会停止处理,进入假死状态,达到了不会由于消息不满足链接条件而导致数据处理架构进入假死状态的目的,进而解决了现有技术中由于不满足链接条件导致整个数据处理架构进入假死状态的技术问题。

可选地,目标处理块包括第一预设处理块,投递单元包括:第一获取模块,用于获取初始链接条件,其中,每个第一处理块和每个第二处理块之间包含一个初始链接条件;生成模块,用于根据初始链接条件生成目标链接条件;第一投递模块,用于当确定目标消息满足目标链接条件时,将目标消息投递至第一预设处理块中,通过第一预设处理块按照预先定义处理规则对目标消息进行处理。

具体地,当判断单元判断出多个目标消息中存在不满足所有初始链接条件的消息时,通过第一获取模块获取所有初始链接条件,并通过生成模块根据所有的初始链接条件生成新的链接条件(即,目标链接条件)。其中,生成的目标链接条件可以为一个,还可以为多个,具体数量由所有的初始链接条件决定。若通过确定可知,该不满足所 有初始链接条件的目标消息满足目标链接条件时,则通过第一投递模块将该目标消息投递至用户指定的处理块中即第一预设处理块中,其中,该第一预设处理块为第一处理块的下一层处理块,并且第一预设处理块和第一处理块之间的链接条件即为该目标消息所满足的目标链接条件。

需要说明的是,第一预设处理块与第一处理块和第二处理块均不相同,第一预设处理块不参与对数据的处理,仅是按照预先定义处理规则对目标消息进行处理,例如,预先定义处理规则可以为该第一预设处理块不参与对目标消息进行处理,而是将该目标消息记录到日志中,然后忽略该消息。

可选地,当初始链接条件的数量为一个时,生成模块包括:第一运算子模块,用于将初始链接条件进行逻辑非运算,得到目标链接条件。

在本申请实施例中,通过第一运算子模块对初始链接条件进行逻辑非运算,进而生成目标链接条件,其中,该通过第一运算子模块生成的目标链接条件不满足初始连接条件。

可选地,当初始链接条件的数量为多个时,生成模块包括:第二运算子模块,用于将多个初始链接条件进行逻辑非运算,得到多个中间链接条件;第三运算子模块,用于依次将运算之后的多个中间链接条件进行逻辑与运算,得到目标链接条件。

在本申请实施例中,当初始链接条件的数量为多个时,首先通过第二运算子模块对初始链接条件进行逻辑非运算,得到处理之后多个的初始链接条件;然后通过第三运算子模块将进行逻辑非运算处理之后多个的初始链接条件进行逻辑与运算,得到目标链接条件,其中,该目标链接条件不满足所有的初始链接条件。

可选地,目标处理块包括第二预设处理块,投递单元包括:第一判断模块,用于判断获取到的目标消息是否携带第一标识,其中,第一标识为表示忽略目标消息的标识;第二投递模块,用于在判断出目标消息中携带第一标识情况下,将目标消息投递至第二预设处理块中,其中,第二预设处理块为对目标消息不进行任何操作的块。

在本申请实施例中,当第一判断模块判断出目标消息不满足初始链接条件时,用户还可以通过第二投递模块将该目标消息投递至指定的处理块中即第二预设处理块中。

当采用第二投递模块对目标消息进行投递时,可标记将该目标消息投递至第二预设处理块中,其中,第二预设处理块命名为Null Block,为忽略目标消息的处理块,即在遇到不满足任何条件的目标消息时不做任何处理,直接忽略。

目标处理块包括第三预设处理块,投递单元可以包括:第二判断模块,用于判断 获取到的目标消息是否携带第二标识,其中,第二标识为表示记录目标消息的错误信息的标识;第三投递模块,用于在判断出目标消息中携带第二标识情况下,将目标消息投递至第三预设处理块中,其中,第三预设处理块为记录错误信息的块。

在本申请实施例中,当第二判断模块判断出目标消息不满足初始链接条件时,用户还可以通过第三投递模块将该目标消息投递至指定的处理块中即第三预设处理块中。

当采用第三投递模块对目标消息进行投递时,可标记将该目标消息投递至第三预设处理块中,其中,第三预设处理块可命名为Error Block,该处理块用于记录对目标消息进行处理过程中出现的异常信息(即,错误信息),并抛出异常。

图6是根据本申请实施例的另一种可选地数据处理架构中消息的处理装置的示意图,如图6所示,解析Block(即,第一处理块)和解析处理块的下一层处理块缓存处理块缓存Block(即,第二处理块)之间的初始链接条件为:ProfileId=1;ProfileId=2;ProfileId=3。

解析Block首先负责对接收到的请求进行解析,根据请求解析到Profile信息,然后将解析到的Profile信息与初始连接条件进行比较,如果比较出初始连接条件ProfileId中包括Profile信息时,则根据每个初始连接条件ProfileId将Profile信息(即,目标消息)投递到不同的Block,例如,图6中所示缓存Block。进而缓存Block对Profile信息进行缓存处理之后,投递至缓存Block的下一层Block(即,如图6所示的聚合Block),聚合Block对Profile信息进行聚合处理,再投递至下一层Block,即保存Block,通过保存Block实现Profile信息的保存。

如果Profile信息不满足任意一个初始链接条件ProfileId,则将Profile信息投递到专门处理这些消息的Block,即,图6中所示的不满足条件的目标消息处理Block。

根据实际需求,不满足条件的目标消息处理Block可以对投递至该处理块的消息做下述处理:

处理一:将Profile信息(即,目标消息)记录到日志中,然后忽略;

处理二:不处理Profile信息(即,目标消息),直接忽略;

处理三:记录异常信息,且抛出该异常信息,其中,异常信息为对Profile信息(即,目标消息)处理过程中存在的异常信息,例如,若在Profile信息中存在异常的Profile信息,则将该异常的Profile信息抛出。

所述数据处理架构中消息的处理装置包括处理器和存储器,上述获取单元、判断单元和投递单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的 上述程序单元来实现相应的功能。

处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来避免由于消息不满足链接条件而导致数据处理架构进入假死状态,进而解决了现有技术中由于不满足链接条件导致整个数据处理架构进入假死状态的技术问题。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。

本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:获取目标消息,其中,所述目标消息为指示第一处理块链接至第二处理块的消息,所述第二处理块为所述第一处理块的下一层块;判断所述目标消息是否满足初始链接条件,其中,所述初始链接条件为所述第一处理块链接到所述第二处理块的条件;当判断出所述目标消息不满足所述初始链接条件时,将所述目标消息投递至目标处理块中。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

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

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

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

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

以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

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