文章信息处理方法、装置、存储介质及电子设备转让专利

申请号 : CN202310815598.9

文献号 : CN116521400B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 辛培灵

申请人 : 京东科技信息技术有限公司

摘要 :

本公开涉及数据处理领域,具体涉及一种文章信息处理方法、装置、存储介质及电子设备。该文章信息处理方法包括:响应于文章信息的发布请求,基于执行链池确定目标执行链的当前流程节点,并执行当前流程节点;在当前流程节点执行成功后,基于执行链池确定目标执行链的下一流程节点,并基于下一流程节点生成异步消息,以将异步消息发布至消息队列中;根据消息队列中的异步消息,将下一流程节点更新为当前流程节点,重复上述步骤直至将目标执行链中所有流程节点执行完毕;在目标执行链中所有流程节点执行完毕后生成处理结束消息,并将处理结束消息发布至消息队列中。该文章信息处理方法能够提高文章信息处理的健壮性和扩展性。

权利要求 :

1.一种文章信息处理方法,其特征在于,包括:

将处理文章信息的逻辑片段抽象成流程节点,并配置所述流程节点的链路标识,以及配置多个所述流程节点之间的顺序得到执行链,以构成执行链池;

响应于文章信息的发布请求,基于所述执行链池确定目标执行链的当前流程节点,并执行所述当前流程节点;

在所述当前流程节点执行成功后,基于所述执行链池确定所述目标执行链的下一流程节点,并基于所述下一流程节点生成异步消息,以将所述异步消息发布至消息队列中;

根据所述消息队列中的所述异步消息,将所述下一流程节点更新为当前流程节点,重复上述步骤直至将所述目标执行链中所有流程节点执行完毕;

在所述目标执行链中所有流程节点执行完毕后生成处理结束消息,并将所述处理结束消息发布至所述消息队列中。

2.根据权利要求1所述的文章信息处理方法,其特征在于,在响应于文章信息的发布请求时,所述方法还包括:将所述文章信息按照数据类型拆解为多条文章数据;

为各条所述文章数据配置主键标识。

3.根据权利要求2所述的文章信息处理方法,其特征在于,在所述当前流程节点为所述目标执行链中的首个流程节点时,所述基于所述下一流程节点生成异步消息,包括:将各所述文章数据、各所述主键标识以及所述下一流程节点的链路标识放于异步消息体,以生成所述异步消息。

4.根据权利要求2所述的文章信息处理方法,其特征在于,在所述当前流程节点为除所述目标执行链中的首个流程节点之外的其他流程节点时,所述基于所述下一流程节点生成异步消息,包括:将各所述主键标识以及所述下一流程节点的链路标识放于异步消息体,以生成所述异步消息。

5.根据权利要求1所述的文章信息处理方法,其特征在于,所述执行链池中一条执行链的流程节点依次为假写节点、持久化节点、内容解析与评估节点、静态化页面节点、安全审核节点和状态处理节点。

6.根据权利要求5所述的文章信息处理方法,其特征在于,在所述当前流程节点为所述假写节点时,所述执行所述当前流程节点,包括:将各条文章数据与对应的主键标识存储于分布式缓存和搜索服务器中。

7.根据权利要求5所述的文章信息处理方法,其特征在于,在所述当前流程节点为所述持久化节点时,所述执行所述当前流程节点,包括:基于各主键标识获取各文章数据;

将各文章数据存储于数据库。

8.根据权利要求5所述的文章信息处理方法,其特征在于,在所述当前流程节点为所述内容解析与评估节点时,所述执行所述当前流程节点,包括:基于各主键标识获取各文章数据;

对各文章数据执行内容处理得到执行结果;其中,所述内容处理包括内容评估、内容判重、内容解析中的一项或多项;

根据所述执行结果更新数据库、分布式缓存和搜索服务器中。

9.根据权利要求5所述的文章信息处理方法,其特征在于,在所述当前流程节点为所述假写节点时,在基于所述下一流程节点生成异步消息之后,所述方法还包括:返回文章待审核提示信息,以用于根据所述文章待审核提示信息进行弹窗提醒。

10.根据权利要求1所述的文章信息处理方法,其特征在于,在将所述处理结束消息发布至所述消息队列中之后,所述方法还包括:响应于所述文章信息的查看请求,返回所有流程节点执行完毕后得到的文章信息,以用于显示。

11.一种文章信息处理装置,其特征在于,包括:

配置模块,用于将处理文章信息的逻辑片段抽象成流程节点;配置所述流程节点的链路标识,以及配置多个所述流程节点之间的顺序得到执行链,以构成执行链池;

执行模块,用于响应于文章信息的发布请求,基于所述执行链池确定目标执行链的当前流程节点,并执行所述当前流程节点;

迭代模块,用于在所述当前流程节点执行成功后,基于所述执行链池确定所述目标执行链的下一流程节点,并基于所述下一流程节点生成异步消息,以将所述异步消息发布至消息队列中;

循环模块,用于根据所述消息队列中的所述异步消息,将所述下一流程节点更新为当前流程节点,重复上述步骤直至将所述目标执行链中所有流程节点执行完毕;

发布模块,用于在所述目标执行链中所有流程节点执行完毕后生成处理结束消息,并将所述处理结束消息发布至所述消息队列中。

12.一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如权利要求1至10任一项所述的文章信息处理方法。

13.一种电子设备,其特征在于,包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至10任一项所述的文章信息处理方法。

说明书 :

文章信息处理方法、装置、存储介质及电子设备

技术领域

[0001] 本公开涉及数据处理领域,具体涉及一种文章信息处理方法、装置、存储介质及电子设备。

背景技术

[0002] 现有的文章数据处理的解决方案为文章数据执行线方案,即前端系统将文章富文本编辑框里的html(超文本标记语言)内容及其他文章相关信息以一个大对象传输给服务端系统,服务端系统对文章数据做一系列的不可中断的顺序逻辑处理,然后存储到数据库,执行完成后响应给前端系统,处理完毕。
[0003] 但这种处理方式处理逻辑越多,“线”就越长,复杂逻辑下引发耗时长、响应慢,导致用户体验变差;另外,“线”无中断点,当遇到某个逻辑片段异常、超时而引发中断,则对前端响应报错。若及时处理异常逻辑,也无法快速令文章数据从异常位置重新开始处理数据;并且当遇到某个逻辑片段升级迭代变化,需要对历史数据重新清洗;以及不适用于高并发场景,当大批量用户发布文章请求或者导入大批文章数据时,由于自身技术设计限制,容易产生内存溢出,并发请求量限制等问题。
[0004] 需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。

发明内容

[0005] 本公开的目的在于提供一种文章信息处理方法、装置、存储介质及电子设备,旨在提高文章信息处理的健壮性和扩展性。
[0006] 本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
[0007] 根据本公开实施例的一方面,提供了一种文章信息处理方法,其特征在于,包括:响应于文章信息的发布请求,基于执行链池确定目标执行链的当前流程节点,并执行所述当前流程节点;在所述当前流程节点执行成功后,基于所述执行链池确定所述目标执行链的下一流程节点,并基于所述下一流程节点生成异步消息,以将所述异步消息发布至消息队列中;根据所述消息队列中的所述异步消息,将所述下一流程节点更新为当前流程节点,重复上述步骤直至将所述目标执行链中所有流程节点执行完毕;在所述目标执行链中所有流程节点执行完毕后生成处理结束消息,并将所述处理结束消息发布至所述消息队列中。
[0008] 根据本公开的一些实施例,基于前述方案,在响应于文章信息的发布请求时,所述方法还包括:将所述文章信息按照数据类型拆解为多条文章数据;为各条所述文章数据配置主键标识。
[0009] 根据本公开的一些实施例,基于前述方案,在所述当前流程节点为所述目标执行链中的首个流程节点时,所述基于所述下一流程节点生成异步消息,包括:将各所述文章数据、各所述主键标识以及所述下一流程节点的链路标识放于异步消息体,以生成所述异步消息。
[0010] 根据本公开的一些实施例,基于前述方案,在所述当前流程节点为除所述目标执行链中的首个流程节点之外的其他流程节点时,所述基于所述下一流程节点生成异步消息,包括:将各所述主键标识以及所述下一流程节点的链路标识放于异步消息体,以生成所述异步消息。
[0011] 根据本公开的一些实施例,基于前述方案,所述方法还包括:将处理文章信息的逻辑片段抽象成流程节点;配置所述流程节点的链路标识,以及配置多个所述流程节点之间的顺序得到执行链,以构成所述执行链池。
[0012] 根据本公开的一些实施例,基于前述方案,所述执行链池中一条执行链的流程节点依次为假写节点、持久化节点、内容解析与评估节点、静态化页面节点、安全审核节点和状态处理节点。
[0013] 根据本公开的一些实施例,基于前述方案,在所述当前流程节点为所述假写节点时,所述执行所述当前流程节点,包括:将各条文章数据与对应的主键标识存储于分布式缓存和搜索服务器中。
[0014] 根据本公开的一些实施例,基于前述方案,在所述当前流程节点为所述持久化节点时,所述执行所述当前流程节点,包括:基于各主键标识获取各文章数据;将各文章数据存储于数据库。
[0015] 根据本公开的一些实施例,基于前述方案,在所述当前流程节点为所述内容解析与评估节点时,所述执行所述当前流程节点,包括:基于各主键标识获取各文章数据;对各文章数据执行内容处理得到执行结果;其中,所述内容处理包括内容评估、内容判重、内容解析中的一项或多项;根据所述执行结果更新数据库、分布式缓存和搜索服务器中。
[0016] 根据本公开的一些实施例,基于前述方案,在所述当前流程节点为所述假写节点时,在基于所述下一流程节点生成异步消息之后,所述方法还包括:返回文章待审核提示信息,以用于根据所述文章待审核提示信息进行弹窗提醒。
[0017] 根据本公开的一些实施例,基于前述方案,在将所述处理结束消息发布至所述消息队列中之后,所述方法还包括:响应于所述文章信息的查看请求,返回所有流程节点执行完毕后得到的文章信息,以用于显示。
[0018] 根据本公开实施例的第二方面,提供了一种文章信息处理装置,其特征在于,包括:执行模块,用于响应于文章信息的发布请求,基于执行链池确定目标执行链的当前流程节点,并执行所述当前流程节点;迭代模块,用于在所述当前流程节点执行成功后,基于所述执行链池确定所述目标执行链的下一流程节点,并基于所述下一流程节点生成异步消息,以将所述异步消息发布至消息队列中;循环模块,用于根据所述消息队列中的所述异步消息,将所述下一流程节点更新为当前流程节点,重复上述步骤直至将所述目标执行链中所有流程节点执行完毕;发布模块,用于在所述目标执行链中所有流程节点执行完毕后生成处理结束消息,并将所述处理结束消息发布至所述消息队列中。
[0019] 根据本公开实施例的第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例中的文章信息处理方法。
[0020] 根据本公开实施例的第四方面,提供了一种电子设备,其特征在于,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中的文章信息处理方法。
[0021] 本公开示例性实施例可以具有以下部分或全部有益效果:
[0022] 在本公开的一些实施例所提供的技术方案中,通过将文章信息处理抽象为由流程节点构成的执行链,进而在接收到文章信息的发布请求时,能够结合执行链和消息队列实现文章信息处理,一方面支持处理过程中任一流程节点单独处理,能够并且从指定流程节点重新开启数据处理流程,以解决异常场景导致发布文章失败问题,提高系统的健壮性;另一方面,支持处理流程中的任意流程节点按需要组合并执行,便于开辟新执行链路以快速解决流程节点变化导致数据清洗问题,提高系统的扩展性。
[0023] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

[0024] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
[0025] 图1示意性示出本公开示例性实施例中一种文章信息处理方法的流程示意图。
[0026] 图2示意性示出本公开示例性实施例中一种文章信息处理的流程示意图。
[0027] 图3示意性示出本公开示例性实施例中一种文章信息处理的流程时序示意图。
[0028] 图4示意性示出本公开示例性实施例中一种文章信息处理装置的组成示意图。
[0029] 图5示意性示出本公开示例性实施例中一种计算机可读存储介质的示意图。
[0030] 图6示意性示出本公开示例性实施例中一种电子设备的计算机系统的结构示意图。

具体实施方式

[0031] 现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
[0032] 此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
[0033] 附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
[0034] 附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
[0035] 现有的文章数据处理的解决方案为文章数据执行线方案,数据处理由开始到结束,中途无法暂停逻辑执行。具体过程是是前端系统将文章富文本编辑框里的html内容及其他文章相关信息以一个大对象传输给服务端系统,服务端系统对文章数据做一系列的不可中断的顺序逻辑处理,然后存储到数据库,执行完成后响应给前端系统,处理完毕。
[0036] 这种方式存在以下缺点:
[0037] 1、文章数据执行线方案,处理逻辑越多,“线”就越长。复杂逻辑下引发耗时长、响应慢,导致用户体验变差。
[0038] 2、文章数据执行线方案,“线”无中断点。当遇到某个逻辑片段异常、超时而引发中断,则对前端响应报错。若及时处理异常逻辑,也无法快速令文章数据从异常位置重新开始处理数据。
[0039] 3、文章数据执行线方案,“线”需从头到尾。当遇到某个逻辑片段升级迭代变化,需要对历史数据重新清洗。以当前方案有俩种选择,(1)重新写一个方法将文章数据清洗,方法内由当前需求必要的逻辑片段组成。缺点是每有哪个逻辑变化就需要重新开发一次方法跑数据。(2)走原有“线”逻辑,缺点是为了重新走某个逻辑片段去走了全程逻辑。
[0040] 4、文章数据执行线方案,不适用于高并发场景。当大批量用户发布文章请求或者导入大批文章数据时,由于自身技术设计限制,容易产生内存溢出,并发请求量限制等问题。
[0041] 针对现有技术存在诸多缺点,本公开提供了一种文章信息处理方法,能够将文章中重点的逻辑片段抽象出一个个的流程节点,由执行链池维护执行顺序,从而形成多条可拆解的多样化的文章数据执行链。再由异步消息队列与文章数据执行链组合搭建成多段式执行链框架,相较于文章数据执行线更加地具有健壮性、扩展性、高效性。
[0042] 以下对本公开实施例的技术方案的实现细节进行详细阐述。
[0043] 图1示意性示出本公开示例性实施例中一种文章信息处理方法的流程示意图。如图1所示,该文章信息处理方法包括步骤S101至步骤S104:
[0044] 步骤S101,响应于文章信息的发布请求,基于执行链池确定目标执行链的当前流程节点,并执行所述当前流程节点;
[0045] 步骤S102,在所述当前流程节点执行成功后,基于所述执行链池确定所述目标执行链的下一流程节点,并基于所述下一流程节点生成异步消息,以将所述异步消息发布至消息队列中;
[0046] 步骤S103,根据所述消息队列中的所述异步消息,将所述下一流程节点更新为当前流程节点,重复上述步骤直至将所述目标执行链中所有流程节点执行完毕;
[0047] 步骤S104,在所述目标执行链中所有流程节点执行完毕后生成处理结束消息,并将所述处理结束消息发布至所述消息队列中。
[0048] 在本公开的一些实施例所提供的技术方案中,通过将文章信息处理抽象为由流程节点构成的执行链,进而在接收到文章信息的发布请求时,能够结合执行链和消息队列实现文章信息处理,一方面支持处理过程中任一流程节点单独处理,能够并且从指定流程节点重新开启数据处理流程,以解决异常场景导致发布文章失败问题,提高系统的健壮性;另一方面,支持处理流程中的任意流程节点按需要组合并执行,便于开辟新执行链路以快速解决流程节点变化导致数据清洗问题,提高系统的扩展性。
[0049] 下面,将结合附图及实施例对本示例实施方式中的文章信息处理方法的各个步骤进行更详细的说明。
[0050] 在步骤S101在,响应于文章信息的发布请求,基于执行链池确定目标执行链的当前流程节点,并执行所述当前流程节点。
[0051] 具体而言,用户可以通过发布平台进行文章信息的发布操作,当用户完成文章信息输入后,发布平台便会向文章系统发送该文章信息的发布请求。此时文章系统接收到文章信息的发布请求,进而执行一系列操作来对该文章信息进行处理。
[0052] 其中,执行链池中包括了多条预设的对文章信息处理的执行链,每一条执行链中都包括了各个流程节点。因此,在公开的一个实施例中,所述方法还包括:将处理文章信息的逻辑片段抽象成流程节点;配置所述流程节点的链路标识,以及配置多个所述流程节点之间的顺序得到执行链,以构成所述执行链池。
[0053] 具体地,可以将文章信息处理过程中重点的逻辑片段规划为不同的流程节点,并为各流程节点配置全局唯一的链路标识。同时,再将流程节点按照文章信息处理过程的顺序串联起来得到多条执行链,以得到执行链池。
[0054] 举例而言,执行链池中一条执行链的流程节点依次为假写节点、持久化节点、内容解析与评估节点、静态化页面节点、安全审核节点和状态处理节点。
[0055] 因此,当文章系统响应于文章信息的发布请求,会从执行链池中确定相应的目标执行链,以及该目标执行链上的当前流程节点,然后执行该当前流程节点。
[0056] 在本公开的一个实施例中,在基于执行链池确定目标执行链的当前流程节点之前,所述方法还包括:将所述文章信息按照数据类型拆解为多条文章数据;为各条所述文章数据配置主键标识。
[0057] 具体地,用户在发布文章信息时,其中可能包括多种数据类型的信息,例如图片、文字、连接等等,在文章信息处理时,可以将文章信息拆解成多条单一数据类型的文章数据。
[0058] 基于上述方法就可以将大体量的数据拆解为小体量的数据,进而能够多进程处理,轻便又健壮,进而避免大对象存在时间长,回收慢导致cpu(Central Processing Unit,中央处理器)上升问题,以及高并发场景下堵塞导致后续用户无法正常发布文章问题。
[0059] 为了区分各条文章数据,可以使用公共发号器获取id(Identification,标识)来为每条文章数据进行赋值,得到各条文章数据分别对应的主键标识(主键id)。
[0060] 需要说明的是,在基于执行链池确定目标执行链的当前流程节点之前,还可以对文章信息进行校验,当校验成功之后,再开始拆解以及按照执行链中的各个流程节点执行。
[0061] 其中,不同的流程节点执行的内容不一样。
[0062] 在本公开的一个实施例中,在所述当前流程节点为所述假写节点时,所述执行所述当前流程节点,包括:将各条文章数据与对应的主键标识存储于分布式缓存和搜索服务器中。
[0063] 具体地,将文章数据和对应的主键标识存储于r2m(分布式缓存)和jes(搜索服务器)中,这一过程便完成了将文章信息假写的过程。将文章信息首先存储于缓存和搜索服务器的存储介质中,而不存储于数据库中,是为了更快速存储和查询到数据以提高响应效率。
[0064] 在本公开的一个实施例中,在所述当前流程节点为所述持久化节点时,所述执行所述当前流程节点,包括:基于各主键标识获取各文章数据;将各文章数据存储于数据库。
[0065] 具体地,为了将文章信息持久化存储,需要将其存储于数据库。根基异步消息可以获取到文章数据的主键id,根据主键id获取到对应的各条文章数据,进而得到完整的文章信息,然后将其存储于数据库中,例如进行cds(分库分表数据库)存储。
[0066] 在本公开的一个实施例中,在所述当前流程节点为所述内容解析与评估节点时,所述执行所述当前流程节点,包括:基于各主键标识获取各文章数据;对各文章数据执行内容处理得到执行结果;其中,所述内容处理包括内容评估、内容判重、内容解析中的一项或多项;根据所述执行结果更新数据库、分布式缓存和搜索服务器中。
[0067] 具体地,内容解析与评估节点是对文章数据进行内容处理,例如内容评估、内容判重、内容解析等,执行时可以多项处理并发执行,然后再将并发处理后的结果进行组装得到最终的执行结果。然后将执行结果单次更新到数据库、分布式缓存以及搜索服务器,也就是将所有存储有文章信息的位置全部进行更新,以保证是最新的数据结果。
[0068] 需要说明的是,本公开中流程节点执行过程仅是示例性描述,本公开对其他流程节点,以及相应的执行过程不做具体限定,都应当是在本公开的保护范围之内。
[0069] 步骤S102,在所述当前流程节点执行成功后,基于所述执行链池确定所述目标执行链的下一流程节点,并基于所述下一流程节点生成异步消息,以将所述异步消息发布至消息队列中。
[0070] 具体而言,在当前流程节点执行成功后,需要确定目标执行链当前流程节点对应的下一流程节点,即确定下一流程节点的消息topic(主题),然后发布异步消息至消息队列中,进而使得下一流程节点能够接收到异步消息后执行相应的操作。
[0071] 在本公开的一个实施例中,在所述当前流程节点为所述目标执行链中的首个流程节点时,所述基于所述下一流程节点生成异步消息,包括:将各所述文章数据、各所述主键标识以及所述下一流程节点的链路标识放于异步消息体,以生成所述异步消息。
[0072] 在本公开的一个实施例中,在所述当前流程节点为除所述目标执行链中的首个流程节点之外的其他流程节点时,所述基于所述下一流程节点生成异步消息,包括:将各所述主键标识以及所述下一流程节点的链路标识放于异步消息体,以生成所述异步消息。
[0073] 具体而言,在执行执行链中的首个流程节点时,需要将主键标识、文章数据和链路标识全部放于异步消息体,发布至消息队列中;而在执行其他流程节点时,仅需要将主键标识和链路标识放于异步消息体,由于利用主键标识可以获取文章数据,因此无需将完整的文章数据进行异步消息的发布。这样一来,就可以避免将文章数据这类大对象传递,使得文章数据处理更加高效。
[0074] 在步骤S103,根据所述消息队列中的所述异步消息,将所述下一流程节点更新为当前流程节点,重复上述步骤直至将所述目标执行链中所有流程节点执行完毕;
[0075] 具体来说,基于消息队列,下一流程节点订阅了上一流程节点的topic,因此当接收到上一流程节点发布的异步消息后,下一流程节点就变成了当前流程节点。
[0076] 然后重复上述的执行流程节点,以及发布异步消息的流程,一直迭代直到将目标执行链中所有流程节点执行完毕,完成对文章信信息的处理。
[0077] 步骤S104,在所述目标执行链中所有流程节点执行完毕后生成处理结束消息,并将所述处理结束消息发布至所述消息队列中。
[0078] 具体而言,当目标执行链中所有的流程节点全部执行完毕之后,就此文章信息处理完成,此时可以广播处理结束消息,该消息也是一个异步消息,发布该异步消息至消息队列中,订阅消息队列的其他下游系统便可以接收到文章信息处理结束的信息,进而执行其他操作。
[0079] 在本公开的一个实施例中,在所述当前流程节点为所述假写节点时,在基于所述下一流程节点生成异步消息之后,所述方法还包括:返回文章待审核提示信息,以用于根据所述文章待审核提示信息进行弹窗提醒。
[0080] 具体地,当文章系统将文章信息假写成功后,可以向发布平台返回文章待审核提示信息,发布平台便可根据文章待审核提示信息生成弹窗提醒,例如弹窗显示“发布成功,审核中”的字样,进而提醒用户其发布的文章信息处于审核中的状态,文章也会以审核中的状态进行展示。
[0081] 基于上述方法,结合异步消息队列的假写流程可以实现快速响应用户发布文章且支持展示。
[0082] 在本公开的一个实施例中,在将所述处理结束消息发布至所述消息队列中之后,所述方法还包括:响应于所述文章信息的查看请求,返回所有流程节点执行完毕后得到的文章信息,以用于显示。
[0083] 具体地,当用户刷新发布平台的界面时,或者发布平台定期刷新界面时,发布平台会生成文章信息的查看请求,如果文章信息处理结束了,那么则会将处理结束后的文章信息准予展示。
[0084] 需要说明的是,由于配置了执行链池,所以可以提供流程可视化界面,使得运营人员在内容后台列表中,能实时看到文章信息处理的每一步的流程流转,增强可视化,且方便问题定位。
[0085] 基于上述方法,将文章信息处理的逻辑片段抽象出一个个的流程节点,由执行链池维护执行顺序,从而形成多条可拆解的多样化的文章数据执行链,再由异步消息队列与文章数据执行链组合搭建成多段式执行链框架。这样一来,一方面能够将文章信息处理的执行链和用户发布文章的过程分开,分流避堵,在大批量数据输入时保持良好的稳定性;另一方面,执行链可以通过消息队列的控制,进而控制每条链的流速,增强处理过程的可控性;再一方面,流程节点各自相互独立,并且可以随意穿插以及逻辑组装,进而在某一个流程节点处可以重启,提高系统的容错率和鲁棒性。
[0086] 下面,以执行链为:假写节点‑‑持久化节点‑‑内容解析与评估节点‑‑静态化页面节点‑‑安全审核节点‑‑状态处理节点为例,进行过程的详细说明。
[0087] 图2示意性示出本公开示例性实施例中一种文章信息处理的流程示意图。参考图2所示,该文章信息处理的具体过程如下:
[0088] 步骤S201,对文章信息进行数据校验;如果检验成功则执行步骤S201,如果检验失败则直接跳转至结束。
[0089] 步骤S202,执行假写节点,执行完成后,还需执行步骤S209,向发布平台返回响应,即返回文章待审核提示信息。
[0090] 步骤S203,执行持久化节点;
[0091] 步骤S204,执行内容解析与评估节点;
[0092] 步骤S205,执行静态化页面节点;
[0093] 步骤S206,执行安全审核节点;
[0094] 步骤S207,执行状态处理节点;
[0095] 步骤S208,分发到其他系统;
[0096] 其中,步骤S202中首个流程节点是同步执行,步骤S203至步骤S208是异步执行的流程节点。
[0097] 图3示意性示出本公开示例性实施例中一种文章信息处理的流程时序示意图。参考图3所示,主要组成结构有用户、发布平台、文章系统以及消息队列,具体过程如下:
[0098] 步骤S301,用户在发布平台中输入文章信息,并点击发布按钮;
[0099] 步骤S302,发布平台向文章系统发送文章信息的发布请求;
[0100] 步骤S303,文章系统响应于发布请求,对文章信息进行数据校验;
[0101] 步骤S304,在数据校验通过时,执行[假写],可以先将文章信息进行拆解,得到多条文章数据,再使用公共发号器获取id赋值每条文章数据的唯一标识,即主键id,然后将文章数据先行存储于r2m分布式缓存和jes搜索服务器中,能够更快速存储和查询到数据以提高响应效率;
[0102] 步骤S305,[假写]成功后,去执行链池中找到下一流程节点的消息topic,将已赋值主键id的文章数据和下一流程节点的链路标识放到异步消息体里发布到消息队列中。
[0103] 步骤S306,返回文章待审核提示信息到发布平台;
[0104] 步骤S307,发布平台弹窗提示用户“发布成功,审核中”;
[0105] 步骤S308,[持久化]订阅了[假写]的topic,接收到了[假写]节点发布的异步消息;
[0106] 步骤S309,执行[持久化],开始将被拆解的多条文章数据进行cds分库分表数据库存储。
[0107] 步骤S310,[持久化] 执行成功,去执行链池中找到下一个流程节点的消息topic,只将主键id和链路标识放到异步消息体里发布到消息队列中,避免大对象传递。
[0108] 步骤S311,[内容解析与评估]订阅了[持久化]的topic,接收到了[持久化]节点发布的异步消息;
[0109] 步骤S312,执行[内容解析与评估],根据文章主键id查询缓存获取文章整体数据,并发执行内容评估、内容判重、内容解析。并发执行得到的结果组装,单次更新到数据库、分布式缓存、搜索服务器;
[0110] 步骤S313,[内容解析与评估] 执行成功,去执行链池中找到下一个流程节点的消息topic,同样只将主键id和链路标识放到异步消息体里发布到消息队列中;
[0111] 后续的步骤S314 步骤S316、步骤S317 步骤S319以及步骤S320 步骤S322与步骤~ ~ ~S310 步骤S312的处理过程类似,都是异步消息被订阅下发,执行节点以及异步消息发布,~
区别只在于步骤S314 步骤S316处理的节点为[静态化页面],步骤S317 步骤S319处理的节~ ~
点为[安全审核] ,步骤S320 步骤S322处理的节点为[状态处理],此处就不做过多赘述,文~
章信息就此处理完成;
[0112] 需要说明的是,由于步骤S322为[状态处理]节点时该执行链的最后一个流程节点,因此在发布异步消息时,异步消息为处理结束消息。
[0113] 步骤S323,用户刷新发布界面;
[0114] 步骤S324,发布平台生成文章信息的查看请求;
[0115] 步骤S325,文章系统查询处理结束的文章信息;
[0116] 步骤S326,在查询到处理结束的文章信息后,返回文章审核通过提示信息到发布平台;
[0117] 步骤S327,发布平台展示文章信息。
[0118] 基于上述方法,主要有以下的技术效果:
[0119] 一方面,可以解决用户体验问题:快速响应用户请求,异常跟进修复用户无感知,增强用户体验。
[0120] 另一方面,可以解决业务使用上问题:(1)支持文章数据处理流程中的任一个流程节点单独处理,并且从指定流程节点重新开启数据处理流程,以解决异常场景导致发布文章失败问题。(2)支持文章数据处理流程中的任意流程节点按需要组合并执行,开辟新文章执行链路以快速解决流程节点变化导致数据清洗问题。(3)解决一个进程执行,大对象存在时间长,回收慢导致cpu上升问题。(4)解决高并发场景下堵塞导致后续用户无法正常发布文章问题。
[0121] 图4示意性示出本公开示例性实施例中一种文章信息处理装置的组成示意图,如图4所示,该文章信息处理装置400可以包括执行模块401、迭代模块402、循环模块403以及发布模块404。其中:
[0122] 执行模块,用于响应于文章信息的发布请求,基于执行链池确定目标执行链的当前流程节点,并执行所述当前流程节点;
[0123] 迭代模块,用于在所述当前流程节点执行成功后,基于所述执行链池确定所述目标执行链的下一流程节点,并基于所述下一流程节点生成异步消息,以将所述异步消息发布至消息队列中;
[0124] 循环模块,用于根据所述消息队列中的所述异步消息,将所述下一流程节点更新为当前流程节点,重复上述步骤直至将所述目标执行链中所有流程节点执行完毕;
[0125] 发布模块,用于在所述目标执行链中所有流程节点执行完毕后生成处理结束消息,并将所述处理结束消息发布至所述消息队列中。
[0126] 根据本公开的示例性实施例,所述执行模块还用于在响应于文章信息的发布请求时,将所述文章信息按照数据类型拆解为多条文章数据;为各条所述文章数据配置主键标识。
[0127] 根据本公开的示例性实施例,所述迭代模块还用于在所述当前流程节点为所述目标执行链中的首个流程节点时,将各所述文章数据、各所述主键标识以及所述下一流程节点的链路标识放于异步消息体,以生成所述异步消息。
[0128] 根据本公开的示例性实施例,所述迭代模块还用于在所述当前流程节点为除所述目标执行链中的首个流程节点之外的其他流程节点时,将各所述主键标识以及所述下一流程节点的链路标识放于异步消息体,以生成所述异步消息。
[0129] 根据本公开的示例性实施例,所述文章信息处理装置400还包括配置模块,用于将处理文章信息的逻辑片段抽象成流程节点;配置所述流程节点的链路标识,以及配置多个所述流程节点之间的顺序得到执行链,以构成所述执行链池。
[0130] 根据本公开的示例性实施例,所述执行链池中一条执行链的流程节点依次为假写节点、持久化节点、内容解析与评估节点、静态化页面节点、安全审核节点和状态处理节点。
[0131] 根据本公开的示例性实施例,所述执行模块还用于在所述当前流程节点为所述假写节点时,将各条文章数据与对应的主键标识存储于分布式缓存和搜索服务器中。
[0132] 根据本公开的示例性实施例,在所述当前流程节点为所述持久化节点时,基于各主键标识获取各文章数据;将各文章数据存储于数据库。
[0133] 根据本公开的示例性实施例,在所述当前流程节点为所述内容解析与评估节点时,基于各主键标识获取各文章数据;对各文章数据执行内容处理得到执行结果;其中,所述内容处理包括内容评估、内容判重、内容解析中的一项或多项;根据所述执行结果更新数据库、分布式缓存和搜索服务器中。
[0134] 根据本公开的示例性实施例,在所述当前流程节点为所述假写节点时,所述迭代模块还用于返回文章待审核提示信息,以用于根据所述文章待审核提示信息进行弹窗提醒。
[0135] 根据本公开的示例性实施例,所述文章信息处理装置400还用于在将所述处理结束消息发布至所述消息队列中之后,响应于所述文章信息的查看请求,返回所有流程节点执行完毕后得到的文章信息,以用于显示。
[0136] 上述的文章信息处理装置400中各模块的具体细节已经在对应的文章信息处理方法中进行了详细的描述,因此此处不再赘述。
[0137] 应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
[0138] 在本公开的示例性实施例中,还提供了一种能够实现上述方法的存储介质。图5示意性示出本公开示例性实施例中一种计算机可读存储介质的示意图,如图5所示,描述了根据本公开的实施方式的用于实现上述方法的程序产品500,其可以采用便携式紧凑盘只读存储器(CD‑ROM)并包括程序代码,并可以在终端设备,例如手机上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0139] 在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。图6示意性示出本公开示例性实施例中一种电子设备的计算机系统的结构示意图。
[0140] 需要说明的是,图6示出的电子设备的计算机系统600仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0141] 如图6所示,计算机系统600包括中央处理单元(Central Processing Unit,CPU)601,其可以根据存储在只读存储器(Read‑Only Memory,ROM)602中的程序或者从存储部分
608加载到随机访问存储器(Random Access Memory,RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(Input /Output,I/O)接口605也连接至总线
604。
[0142] 以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN(Local Area Network,局域网)卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
[0143] 特别地,根据本公开的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本公开的系统中限定的各种功能。
[0144] 需要说明的是,本公开实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read‑Only Memory,CD‑ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
[0145] 附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0146] 描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
[0147] 作为另一方面,本公开还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
[0148] 应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
[0149] 通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD‑ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本公开实施方式的方法。
[0150] 本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。
[0151] 应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。