掌桥专利:专业的专利平台
掌桥专利
首页

任务审核方法、装置、计算机设备及存储介质

文献发布时间:2023-06-19 09:46:20


任务审核方法、装置、计算机设备及存储介质

技术领域

本发明涉及微服务架构领域,尤其涉及一种任务审核方法、装置、计算机设备及存储介质。

背景技术

任务审核是目前许多业务系统的共性功能,一般包括任务定义、任务推送、审核内容、审核人、审核权限控制等。

传统业务系统一般会将任务审核与业务结合形成一套与该业务对应的个性化审核方案,但这种方式仅能支持特定的业务场景,难以做到公共扩展;目前,越来越多的系统采取微服务的方式部署应用,但是由于审核与业务结合的特性,审核功能需要在多个微服务各自实施,而无法实现在各个业务场景中通用,很明显,这种情况会导致任务审核的可移植性较差、扩展性较低,且需要投入大量人力维护多变化的业务场景的审核流程,并且人力的投入做法将直接导致人力开发成本提高、维护成本提高、系统逻辑复杂和微服务之间新增过多不必要的交互问题。因此,本领域技术人员亟需寻找一种在微服务群中,能将任务审核单独脱离出来,使得任务审核这个业务场景可以在多个微服务实现通用的技术方案来解决上述存在的问题。

发明内容

基于此,有必要针对上述技术问题,提供一种任务审核方法、装置、计算机设备及存储介质,可以在微服务群中,根据任务审核的公共特性将任务审核功能单独抽脱离出来,以令任务审核在多个业务系统(位于同一微服务群下的微服务)中实现通用。

一种任务审核方法,包括:

在接收到审核请求时,获取各个业务系统通过消息队列发送的待审核信息;所述业务系统是指位于同一微服务群中的微服务系统;

根据所述待审核信息的接收时间的先后顺序轮询,生成与各个所述业务系统发出的各个所述待审核信息对应的具有业务编号的待审核任务;

根据所述业务编号为各个所述待审核任务确定审核维度;每一个所述审核维度与所述业务编号级联的一个下级编号对应;

按照所述待审核任务的接收时间将各个所述审核维度排布至与各个所述业务编号对应的用户的审核界面中,并在获取到所述用户在所述审核界面上针对各个所述审核维度所反馈的审核信息后,将获取到的所有所述审核信息汇集成与所述业务编号关联的审核结果,将所述审核结果和所述业务编号关联写入所述消息队列中,令所述消息队列根据所述业务编号通知所述业务系统获取所述审核结果。

一种任务审核装置,包括:

获取模块,用于在接收到审核请求时,获取各个业务系统通过消息队列发送的待审核信息;所述业务系统是指位于同一微服务群中的微服务系统;

生成模块,用于根据所述待审核信息的接收时间的先后顺序轮询,生成与各个所述业务系统发出的各个所述待审核信息对应的具有业务编号的待审核任务;

第一确定模块,用于根据所述业务编号为各个所述待审核任务确定审核维度;每一个所述审核维度与所述业务编号级联的一个下级编号对应;

通知模块,用于按照所述待审核任务的接收时间将各个所述审核维度排布至与各个所述业务编号对应的用户的审核界面中,并在获取到所述用户在所述审核界面上针对各个所述审核维度所反馈的审核信息后,将获取到的所有所述审核信息汇集成与所述业务编号关联的审核结果,将所述审核结果和所述业务编号关联写入所述消息队列中,令所述消息队列根据所述业务编号通知所述业务系统获取所述审核结果。

一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任务审核方法。

一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任务审核方法。

上述任务审核方法、装置、计算机设备及存储介质,可以在微服务群中,根据任务审核的公共特性,将任务审核功能单独抽取出并集中在本发明所在的服务器中,将该服务器作为一套公共的审核结构,由该服务器专门用于执行任务处理、任务生成和任务分发,适用于任何业务场景的任务审核以及审核系统,避免了审核功能在多个微服务(业务系统所在的微服务)各自实施,无法实现在各个业务场景中实现通用状况的出现,提高了任务审核的可移植性和扩展性,减少了开发和维护成本,且可减少微服务之间的交互过多的问题。且本实施例抽取任务审核功能该可以实现以下有益效果:首先、使业务系统无需再关注任务审核、消息推送和权限控制所对应的任务管理的公共逻辑开发,节省了业务系统的开发工作量以及降低代码耦合;其次、能支持多种审核维度,满足于任务审核的各种需求;再次、业务系统与进行任务审核的服务器之间采用异步推送方式,减少系统耦合带来的影响。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例中任务审核方法的一应用环境示意图;

图2是本发明一实施例中任务审核方法的一流程图;

图3是本发明一实施例中任务审核装置的结构示意图;

图4是本发明一实施例中计算机设备的一示意图。

具体实施方式

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

本发明提供的任务审核方法,可应用在如图1的应用环境中,其中,客户端通过网络与服务器进行通信。其中,客户端可以但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

在一实施例中,如图2所示,提供一种任务审核方法,以该方法应用在图1中的服务器为例进行说明,包括如下步骤:

S10,在接收到审核请求时,获取各个业务系统通过消息队列发送的待审核信息;所述业务系统是指位于同一微服务群中的微服务系统;

可理解地,微服务群可包含多个业务系统;审核请求是业务系统所发出的请求信息,同时该业务系统也存在与审核请求对应的待审核信息,其中,所有的待审核信息都是通过固定的文件格式发送出去,待审核信息可为业务系统关于订单支付和审批文件等;消息队列是一种可部署在微服务中的中间件,消息队列可看成是与生产者和消费者均关联的队列,生产者往消息队列中写入消息,消费者可以读取队列中的消息,本实施例中的业务系统以及本实施例执行主体任务统一处理服务器都可为生产者和消费者。

在本实施例中,以任务统一处理服务器为执行主体,该服务器只代表了任务审核功能(在一个微服务群中,根据任务审核的公共特性,将任务审核功能集中在一个服务器中),通过该服务器专门用于执行任务处理、任务生成和任务分发,且关注的核心是运行过程中的各种任务的状态而非任务内容,业务系统不需要再实现任务审核功能,从而减少业务系统的工作量和业务系统的出错率,以及可通过任务统一处理器对任务对应的各种状态进行追踪和对任务进归档。且本实施例中的任务统一处理服务器与业务系统之间的通信是利用消息队列中的异步推送方式,减少系统耦合对业务系统带来影响。

S20,根据所述待审核信息的接收时间的先后顺序轮询,生成与各个所述业务系统发出的各个所述待审核信息对应的具有业务编号的待审核任务;

可理解地,每一个业务系统发出审核请求时,发出时间可能存在差异,因此对于待审核信息的接收时间来说,就存在接收时间的先后顺序,此时,本实施例为了更好对各个业务系统的待审核信息进行快速追踪,可为各个业务系统发出的各个待审核信息生成带有业务编号的待审核任务,其中,业务编号的形式只是为了让任务统一处理服务器识别,因此业务编号可设置成二进制编码形式。

S30,根据所述业务编号为各个所述待审核任务确定审核维度;每一个所述审核维度与所述业务编号级联的一个下级编号对应;

可理解地,审核维度可根据待审核信息的业务类型确定(其中,一个业务类型可对应一个业务场景),具体是通过预设业务类型对照表判断业务系统发出的审核信息所属的业务类型,也即判断审核信息中存在特定字符所属的业务类型,如审核信息包含订单总额、订单生成时间以及订单付款方式等特定字符,可确定业务类型为订单付款审核;另外每一个审核维度都关联一个下级编号,且业务编号下的审核维度可自定义设置,在设置完成后,该审核维度对应的下级编号会关联业务编号。本实施例设置的审核维度可满足于各种不同业务系统在任务审核所需的各种必要审核信息,且能提高任务审核的拓展性,适应于多种业务类型的业务场景。在本实施例中也可通过设置任务审批链确定所需的审核维度以及其他自定义信息,以能够支持较为复杂的业务场景。

S40,按照所述待审核任务的接收时间将各个所述审核维度排布至与各个所述业务编号对应的用户的审核界面中,并在获取到所述用户在所述审核界面上针对各个所述审核维度所反馈的审核信息后,将获取到的所有所述审核信息汇集成与所述业务编号关联的审核结果,将所述审核结果和所述业务编号关联写入所述消息队列中,令所述消息队列根据所述业务编号通知所述业务系统获取所述审核结果。

可理解地,一个审核维度可对应一个用户审核后在审核界面生成的审核信息,其中,一个业务系统可发出多个审核请求,因此在本实施例中,可产生多个与同一个业务系统关联的业务编号,此时需要根据接收时间将同一个业务系统下的多个业务编号中的各个审核维度排布至审核界面中,也即接收时间越早,业务编号的审核维度排布在审核界面越靠前;本实施例也会通过消息处理逻辑组件,接收各个审核维度所对应的审核情况,并将审核情况进行逻辑处理后而生成审核结果,如在维度存在相关关系时,订单付款审核维度的审核情况为成功,但身份验证维度的审核情况为失败,生成的审核结果可为失败等,在维度未存在相关关系时,也可汇集各个审核维度的审核情况而得到总的审核结果;本实施例最后将审核结果写入消息队列,此时,通过消息队列通知业务系统获取与业务编号对应对的审核结果。

进一步地,所述令所述消息队列根据所述业务编号通知所述业务系统获取所述审核结果之后,还包括:

利用去重表确定所述审核结果是否已通过所述业务编号反馈至对应的所述业务系统中;

在确定所述审核结果已反馈至所述业务系统中之后,提示已反馈审核结果至所述业务系统。

本实施例设置的去重表主要是为了利用数据库表单的特性来实现接收方(业务系统)的幂等,而实现幂等是为了应对审核结果重复发送的情况,具体是在去重表上构建唯一性索引,保证审核结果一旦被接收完毕,后续业务系统再次发出获取审核结果的请求将不再重复处理,以减少业务系统的请求次数。在另一实施例中,在确定所述审核结果未反馈至所述业务系统中,重新令所述消息队列根据所述业务编号通知所述业务系统获取所述审核结果。

在一实施例中,所述令所述消息队列根据所述业务编号通知所述业务系统获取所述审核结果之前,还包括:

按照预设发送规则向所述中间件发送验证消息,识别所述验证消息是否被所述中间件接收;

当所述验证消息未被所述中间件接收,对所述中间件进行回滚,再次发送所述验证消息至所述中间件中直至所述中间件接收到所述审核结果。

可理解地,本实施例中的预设发送规则是通过开区中间件的事务功能,以通过事务功能向中间件发送验证消息;本实施例所指的事务功能是指中间件能执行运行的功能,是提前被设置在中间件中。

本实施例主要是为了解决由于网络等其他问题而导致审核结果在任务统一处理服务器写入至消息队列的过程中发生丢失的情况,此时可通过中间件中的事务功能在任务统一处理服务器写入至消息队列之前进行提前验证,具体是通过中间件事务功能发送的一个验证消息来确定中间件是否能接收验证消息,在确定中间件能接收验证信息,确定中间件能写入审核结果,在确定中间件未能接收验证信息,接收到异常报错并作出相应处理(按照中间件事务功能对中间件进行回滚,回滚的意思是再次发送验证消息至中间件)。

在另一实施例中,所述令所述消息队列根据所述业务编号通知所述业务系统获取所述审核结果之前,还包括:

为每个已被所述消息队列所在的中间件接收的所述审核结果写入一个唯一ID;

在接收到所述中间件接收所述唯一ID之后回传的预设确认信息时,确定所述审核结果被所述中间件接收;

在未接收到所述中间件回传的所述预设确认信息时,通过所述中间件回调的无应答接口确定所述审核结果未被所述中间件接收。

本实施例主要是也为了解决由于网络等其他问题而导致审核结果在任务统一处理服务器写入至消息队列的过程中发生丢失的情况,此时可通过所述唯一ID来进行确认。

进一步地,所述令所述消息队列根据所述业务编号通知所述业务系统获取所述审核结果之后,还包括:

在确定所述消息队列所在的中间件未接收到所述审核结果,调用出已预先更新至预设磁盘中的所述审核结果,并通过所述预设目标队列根据所述业务编号将所述审核结果反馈至对应的所述业务系统。

本实施例主要是也为了解决由于中间件自身问题后而导致审核结果发生丢失的情况,此时可预先将审核结果持久化更新至预设磁盘,以确保业务系统能接收到审核结果。

进一步地,所述令所述消息队列根据所述业务编号通知所述业务系统获取所述审核结果之后,还包括:

记录各个所述审核结果所反馈至所述业务系统后所对应的运行状态,获取通过统计模块对请求失败的运行状态进行统计后,所得到各个所述业务系统的统计结果;

针对每一个所述业务系统,确定所述统计结果对应的请求失败次数与该业务系统发出所述审核请求的请求数的比例关系,并在所述比例关系达到预设比例关系时,对预设接收人员发送异常提示信息。

本实施例主要是为了判断业务系统请求失败次数跟请求数的比例关系是否达到预设比例关系,以及时通知预设接收人员对该业务系统所存在的异常进行及时处理。

进一步地,所述将所述审核结果和所述业务编号关联写入所述消息队列之后,还包括:

实时统计所述消息队列的第一容纳量;

在所述第一容纳量超过预设容纳量时,暂停所述业务系统获取所述待审核结果的工作,释放所述消息队列中的所有所述审核结果,同时建立起一个具有第二容纳量的临时队列保存所述消息队列中的所有所述审核结果;所述第二容纳量大于所述第一容纳量。

本实施例主要是为了解决太多审核结果在消息队列积压的情况,通过预设消费者程序(与业务系统属于同一种对象,也即为消费者对象)释放(消费)掉审核结果,保证目前业务系统的获取速度,同时通过临时队列来紧急扩容。

综上所述,上述提供了一种任务审核方法,可以在微服务群中,根据任务审核的公共特性,将任务审核功能单独抽取出并集中在本发明所在的服务器中,将该服务器作为一套公共的审核结构,由该服务器专门用于执行任务处理、任务生成和任务分发,适用于任何业务场景的任务审核以及审核系统,避免了审核功能在多个微服务各自实施,无法实现在各个业务场景中实现通用状况的出现,提高了任务审核的可移植性和扩展性,减少了开发和维护成本,且可减少微服务之间的交互过多的问题。且本实施例抽取任务审核功能该可以实现以下有益效果:首先、使业务系统无需再关注任务审核、消息推送和权限控制所对应的任务管理的公共逻辑开发,节省了业务系统的开发工作量以及降低代码耦合;其次、能支持多种审核维度,满足于任务审核的各种需求;再次、业务系统与进行任务审核的服务器之间采用异步推送方式,减少系统耦合带来的影响。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

在一实施例中,提供一种任务审核装置,该任务审核装置与上述实施例中任务审核方法一一对应。如图3所示,该任务审核装置包括获取模块11、生成模块12、第一确定模块13和通知模块14。各功能模块详细说明如下:

获取模块11,用于在接收到审核请求时,获取各个业务系统通过消息队列发送的待审核信息;所述业务系统是指位于同一微服务群中的微服务系统;

生成模块12,用于根据所述待审核信息的接收时间的先后顺序轮询,生成与各个所述业务系统发出的各个所述待审核信息对应的具有业务编号的待审核任务;

第一确定模块13,用于根据所述业务编号为各个所述待审核任务确定审核维度;每一个所述审核维度与所述业务编号级联的一个下级编号对应;

通知模块14,用于按照所述待审核任务的接收时间将各个所述审核维度排布至与各个所述业务编号对应的用户的审核界面中,并在获取到所述用户在所述审核界面上针对各个所述审核维度所反馈的审核信息后,将获取到的所有所述审核信息汇集成与所述业务编号关联的审核结果,将所述审核结果和所述业务编号关联写入所述消息队列中,令所述消息队列根据所述业务编号通知所述业务系统获取所述审核结果。

进一步地,所述任务审核装置,还包括:

第二确定模块,用于利用去重表确定所述审核结果是否已通过所述业务编号反馈至对应的所述业务系统中;

提示模块,用于在确定所述审核结果已反馈至所述业务系统中之后,提示已反馈审核结果至所述业务系统。

进一步地,所述任务审核装置,还包括:

第一发送模块,用于按照预设发送规则向所述中间件发送验证消息,识别所述验证消息是否被所述中间件接收;

回滚模块,用于当所述验证消息未被所述中间件接收,对所述中间件进行回滚,再次发送所述验证消息至所述中间件中直至所述中间件接收到所述审核结果。

进一步地,所述任务审核装置,还包括:

写入模块,用于为每个已被所述消息队列所在的中间件接收的所述审核结果写入一个唯一ID;

第三确定模块,用于在接收到所述中间件接收所述唯一ID之后回传的预设确认信息时,确定所述审核结果被所述中间件接收;

第四确定模块,用于在未接收到所述中间件回传的所述预设确认信息时,通过所述中间件回调的无应答接口确定所述审核结果未被所述中间件接收。

进一步地,所述任务审核装置,还包括:

反馈模块,用于在确定所述消息队列所在的中间件未接收到所述审核结果,调用出已预先更新至预设磁盘中的所述审核结果,并通过所述预设目标队列根据所述业务编号将所述审核结果反馈至对应的所述业务系统。

进一步地,所述任务审核装置,还包括:

记录模块,用于记录各个所述审核结果所反馈至所述业务系统后所对应的运行状态,获取通过统计模块对请求失败的运行状态进行统计后,所得到各个所述业务系统的统计结果;

第二发送模块,用于针对每一个所述业务系统,确定所述统计结果对应的请求失败次数与该业务系统发出所述审核请求的请求数的比例关系,并在所述比例关系达到预设比例关系时,对预设接收人员发送异常提示信息。

进一步地,所述任务审核装置,还包括:

建立模块,用于实时统计所述消息队列的第一容纳量;

暂停模块,用于在所述第一容纳量超过预设容纳量时,暂停所述业务系统获取所述待审核结果的工作,释放所述消息队列中的所有所述审核结果,同时建立起一个具有第二容纳量的临时队列保存所述消息队列中的所有所述审核结果;所述第二容纳量大于所述第一容纳量。

关于任务审核装置的具体限定可以参见上文中对于任务审核方法的限定,在此不再赘述。上述任务审核装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储任务审核方法中涉及到的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种任务审核方法。

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中任务审核方法的步骤,例如图2所示的步骤S10至步S40。或者,处理器执行计算机程序时实现上述实施例中任务审核装置的各模块/单元的功能,例如图3所示模块11至模块14的功能。为避免重复,这里不再赘述。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中任务审核方法的步骤,例如图2所示的步骤S10至步骤S40。或者,计算机程序被处理器执行时实现上述实施例中任务审核装置的各模块/单元的功能,例如图3所示模块11至模块14的功能。为避免重复,这里不再赘述。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

相关技术
  • 任务审核方法、装置、计算机设备及存储介质
  • 审核任务处理方法、装置、计算机设备和存储介质
技术分类

06120112295772