CN115827254A - 一种资源处理的方法、装置和系统 - Google Patents
一种资源处理的方法、装置和系统 Download PDFInfo
- Publication number
- CN115827254A CN115827254A CN202310111822.6A CN202310111822A CN115827254A CN 115827254 A CN115827254 A CN 115827254A CN 202310111822 A CN202310111822 A CN 202310111822A CN 115827254 A CN115827254 A CN 115827254A
- Authority
- CN
- China
- Prior art keywords
- resource
- request
- processing
- amount
- locking
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种资源处理的方法、装置和系统,涉及金融计算机技术领域。该方法的一具体实施方式包括:获取一个或多个资源处理请求;每一个资源处理请求指示了一个或多个目标应用分别对应的资源请求量;根据目标应用中的资源存储量或资源请求量,锁定目标应用中的目标资源;根据锁定成功的目标资源和资源请求量,向目标应用发送资源处理指令。该实施方式在资源调用前通过锁定的方式对资源进行预占,最终根据锁定的目标资源和资源请求量,向目标应用发送资源处理指令。即使资源处理请求未能处理成功,锁定的目标资源也可继续用于其他资源处理请求,避免了由于前一资源请求的资源调用失败未归还,导致了后一资源请求无法顺利完成的情况。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种资源处理的方法、装置和系统。
背景技术
在现有的资源处理过程中,对于多个资源处理请求,可以通过同步处理或异步处理。对于同步处理,需要在前一资源处理请求处理完成后,才能处理后一资源处理请求,执行效率较低且处理过程较慢,因此多选用异步处理对多个资源请求进行处理。但是,对于异步处理,存在在前一资源处理请求的过程中,需要对多个目标应用同时进行资源占用,而后一资源请求仅需对其中的部分目标应用进行资源占用。例如资源请求A需要分别占用目标应用1、目标应用2以及目标应用3的资源,资源请求量为50,资源请求B仅需要占用目标应用2的资源,资源请求量为30。在资源占用的过程中,需要依次对目标应用1、目标应用2和目标应用3中的资源存储量进行调用,但由于目标应用3的资源存储量仅为30,无法满足资源请求A的要求,导致资源请求A的处理结果为处理失败,同时需要将已调用的资源返还至目标应用1和目标应用2。在资源未返还完成的过程中,目标应用2中的资源存储量为0,无法满足资源请求B的要求,因此使得后一资源请求(即资源请求B)也会生成处理失败的处理结果。以至于目标应用1中的资源存储量本可以满足资源请求B的要求,但由于前一资源请求(资源请求A)的资源调用失败未归还,导致了后一资源请求(资源请求B)也无法顺利完成。
发明内容
有鉴于此,本发明实施例提供一种资源处理的方法、装置和系统,通过根据目标应用中的资源存储量或资源处理请求的资源请求量,来锁定目标应用中的目标资源,即在资源调用前通过锁定的方式对资源进行预占,最终根据锁定的目标资源和资源请求量,即预占的结果,向目标应用发送资源处理指令,以分别对一个或多个资源处理请求进行处理。即使资源处理请求未能处理成功,锁定的目标资源也可继续用于其他资源处理请求,避免了由于前一资源请求的资源调用失败未归还,导致了后一资源请求无法顺利完成的情况。
为实现上述目的,根据本发明实施例的一个方面,提供了一种资源处理的方法。
本发明实施例的一种资源处理的方法包括:获取一个或多个资源处理请求;每一个所述资源处理请求指示了一个或多个目标应用分别对应的资源请求量;根据所述目标应用中的资源存储量或所述资源请求量,锁定所述目标应用中的目标资源;根据锁定成功的目标资源和所述资源请求量,向所述目标应用发送资源处理指令,以分别对所述一个或多个资源处理请求进行处理。
可选地,所述锁定所述目标应用中的目标资源,包括:生成包括待锁定资源量的资源锁定请求;接收响应于所述资源锁定请求的资源锁定结果;根据所述资源锁定结果,对所述资源锁定结果中的目标资源进行锁定。
可选地,所述方法还包括:通过第一线程执行生成指示了所述目标应用中待锁定资源量的资源锁定请求的步骤,通过第二线程执行接收响应于所述资源锁定请求的资源锁定结果的步骤,并执行所述根据锁定的目标资源和所述资源请求量,向所述目标应用发送资源处理指令的步骤。
可选地,所述资源处理请求还指示了对一个或多个目标应用执行的处理操作;所述生成包括待锁定资源量的资源锁定请求,包括:根据所述处理操作对所述多个资源处理请求进行聚合,确定所述一个或多个目标应用分别对应的资源请求量总额;以所述资源请求量总额作为待锁定资源量,生成所述资源锁定请求。
可选地,所述根据所述处理操作对所述多个资源处理请求进行聚合,确定所述一个或多个目标应用分别对应的资源请求量总额,包括:将所述处理操作为资源占用的多个资源处理请求进行聚合,确定所述一个或多个目标应用分别对应的资源请求量总额。
可选地,所述资源锁定请求包括请求类型;所述根据锁定的目标资源和所述资源请求量,向所述目标应用发送资源处理指令,包括:在所述请求类型为第一类型的情况下,所述资源处理指令包括是否生效所述资源锁定请求;在所述请求类型为第二类型的情况下,所述资源处理指令包括执行所述资源处理请求的资源使用明细。
可选地,在所述向所述目标应用发送资源处理指令之后,该方法还包括:在所述请求指令为第一类型的情况下,当所述资源处理指令为生效所述资源锁定请求时,根据锁定生效的目标资源确定资源使用明细,并解除锁定;当所述资源处理指令为不生效所述资源锁定请求时,直接解除锁定;在所述请求类型为第二类型的情况下,根据所述资源使用明细生成资源释放指令,并将所述资源释放指令发送给各个所述目标应用,以使各个所述目标应用根据所述资源释放指令确定对应的资源存储量。
可选地,所述根据所述目标应用中的资源存储量或所述资源请求量,锁定所述目标应用中的目标资源,包括:生成与每一个所述资源处理请求分别对应的资源锁定请求;根据与各个资源锁定请求分别对应的资源锁定结果,将各个所述资源锁定结果中锁定成功的目标资源分别锁定在本地。
可选地,所述根据锁定的目标资源和所述资源请求量,向所述目标应用发送资源处理指令,以分别对所述多个资源处理请求进行处理,包括:将各个所述资源处理请求分别对应锁定成功的目标资源进行加和,得到本地的资源锁定总量;在所述资源锁定总量不小于所述资源请求量的情况下,生成资源处理指令 ,并将所述资源处理指令发送至所目标应用,以分别对每个所述资源处理请求进行处理。
为实现上述目的,根据本发明实施例的又一方面,提供了一种资源处理的装置。
本发明实施例的一种资源处理的装置包括:获取模块,用于获取一个或多个资源处理请求;每一个所述资源处理请求指示了一个或多个目标应用分别对应的资源请求量;锁定模块,用于根据所述目标应用中的资源存储量或所述资源请求量,锁定所述目标应用中的目标资源;处理模块,用于根据锁定成功的目标资源和所述资源请求量,向所述目标应用发送资源处理指令,以分别对所述多个资源处理请求进行处理。
为实现上述目的,根据本发明实施例的又一方面,提供了一种资源处理的系统。
本发明实施例的一种资源处理的系统包括:上述资源处理的装置以及一个或多个目标应用;其中,所述资源处理的装置用于获取一个或多个资源处理请求;每一个所述资源处理请求指示了一个或多个目标应用分别对应的资源请求量;根据所述目标应用中的资源存储量或所述资源请求量,锁定所述目标应用中的目标资源;根据锁定成功的目标资源和所述资源请求量,向所述目标应用发送资源处理指令,以分别对所述多个资源处理请求进行处理;所述目标应用用于接收所述资源处理的装置发送的资源处理指令,并根据所述资源处理指令进行处理。
可选地,所述目标应用还用于,接收所述资源处理的装置发送的资源锁定请求,所述资源锁定请求中指示了一个或多个资源处理请求分别对应的请求类型、以及待锁定资源量;确定所述目标应用中与所述请求类型对应的资源存储量;根据所述待锁定资源量以及所述资源存储量确定资源锁定结果。
可选地,所述目标应用还用于,在所述请求类型为第一类型的情况下,确定所述资源处理请求对应的业务编码;确定所述目标应用对应的总资源存储量中可用于所述业务编码的资源存储量。
可选地,所述目标应用还用于,针对属于同一业务编码的一个或多个所述资源处理请求,根据处理操作为资源占用以及资源释放的所述资源处理请求,确定可用于所述业务编码的资源存储量;针对不属于同一业务编码的一个或多个所述资源处理请求,根据处理操作为资源占用的所述资源处理请求,确定可用于所述业务编码的资源存储量。
可选地,所述目标应用还用于,在所述请求类型为第二类型的情况下,根据属于所述第二类型的请求的一个或多个资源处理指令,确定所述目标应用在第二类型请求下的资源存储量。
可选地,所述目标应用还用于,对锁定成功的目标资源进行记录,生成资源锁定记录;根据所述资源处理指令中的资源使用明细确定待补偿的虚拟资源使用记录;接收资源释放指令,并根据所述虚拟资源使用记录对所述资源锁定记录进行更新。
可选地,所述根据所述待锁定资源量以及所述资源存储量确定资源锁定结果,包括:当所述目标应用在第二类型请求下的资源存储量小于预设存储量的情况下,根据所述资源存储量生成待补偿的虚拟资源存储记录;根据所述虚拟资源存储记录确定虚拟资源存储量,根据所述待锁定资源量以及所述虚拟资源存储量确定资源锁定结果。
可选地,所述目标应用还用于,根据所述待锁定资源量与所述资源存储量中的较小值,确定资源锁定结果。
可选地,所述目标应用还用于,在所述资源处理的装置崩溃重启的情况下,对所述资源处理指令执行幂等操作,判断是否存在与各个所述资源处理指令对应的历史处理结果;针对不存在对应的处理结果的目标资源处理指令,进行指令处理并将生成的新的处理结果返回给所述资源处理的装置;针对存在对应的处理结果的目标资源处理指令,将所述历史处理结果返回给所述资源处理的装置。
为实现上述目的,根据本发明实施例的又一方面,提供了一种用于资源处理的电子设备。
本发明实施例的一种资源处理的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种资源处理的方法。
为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读存储介质。
本发明实施例的一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种资源处理的方法。
上述发明中的一个实施例具有如下优点或有益效果:通过根据目标应用中的资源存储量或资源处理请求的资源请求量,来锁定目标应用中的目标资源,即在资源调用前通过锁定的方式对资源进行预占,最终根据锁定的目标资源和资源请求量,即预占的结果,向目标应用发送资源处理指令,以分别对一个或多个资源处理请求进行处理。即使资源处理请求未能处理成功,锁定的目标资源也可继续用于其他资源处理请求,避免了由于前一资源请求的资源调用失败未归还,导致了后一资源请求无法顺利完成的情况,提高资源处理请求的准确性。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的资源处理的方法的主要步骤的示意图;
图2是根据本发明实施例的锁定目标资源的方法的主要步骤的示意图;
图3是根据本发明实施例的批量锁定中生成资源锁定请求的具体方法的流程示意图;
图4是根据本发明实施例的不同请求类型所对应的资源处理指令的示意图;
图5是根据本发明实施例的流式锁定中生成资源锁定请求的具体方法的流程示意图;
图6是根据本发明实施例的流式锁定中处理资源处理请求的具体过程的流程示意图;
图7是根据本发明实施例的资源处理的装置的主要模块的示意图;
图8是根据本发明实施例的资源处理的系统的示意图;
图9是根据本发明实施例的目标应用确定资源锁定结果的流程示意图;
图10是根据本发明实施例的第一类型对应的资源存储量的确定方法的流程示意图;
图11是根据本发明实施例的目标应用根据资源使用明细更新资源锁定记录的流程示意图;
图12是根据本发明实施例的在第二类型请求下的资源存储量小于预设存储量的情况下的流程示意图;
图13是根据本发明实施例的批量锁定中系统崩溃重启的主要步骤的示意图;
图14是根据本发明实施例的流式锁定中系统崩溃重启的主要步骤的示意图;
图15是根据本发明实施例的资源处理的方法的详细流程示意图;
图16是本发明实施例可以应用于其中的示例性系统架构图;
图17是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要指出的是,在不冲突的情况下,本发明的实施例以及实施例中的技术特征可以相互结合。
图1是根据本发明实施例的资源处理的方法的主要步骤的示意图。
如图1所示,本发明实施例的资源处理的方法主要包括以下步骤:
步骤S101:获取一个或多个资源处理请求;每一个资源处理请求指示了一个或多个目标应用分别对应的资源请求量;
步骤S102:根据目标应用中的资源存储量或资源请求量,锁定目标应用中的目标资源;
步骤S103:根据锁定成功的目标资源和资源请求量,向目标应用发送资源处理指令,以分别对一个或多个资源处理请求进行处理。
其中,资源处理请求可以理解为想要对资源进行处理的请求,其中包括了目标应用以及想要处理的资源请求量。通常情况下,资源的处理过程分为两部分,即虚拟进行的口头资变更过程和实际变动的资源实际交收过程,其中,资源处理请求则可以理解为口头资变更过程,是从上游的管理部门获得的,而资源处理指令则为对资源实际执行处理的指令,是需要发给下游的目标应用的,也就是目标应用根据资源处理指令进行实际变动的资源实际交收过程。需要说明的是,资源是由各个目标应用持有的,也就是说,资源是在远端不同的服务器上分散持有的,因此目标应用中的资源存储量可以理解为各个持有资源的目标应用中可用的资源总量,当目标应用中有足够的资源持有时,才可以满足资源请求量进行资源的处理。
以交易场景为例对上述名词以及实际过程进行具体说明,在交易场景下,各个目标应用即为可以进行交易的各个交易账户,资源处理请求为交易请求,资源请求量为各个交易账户分别对应操作的交易金额,资源存储量为各个交易账户的存款金额,目标资源为存款金额中待锁定的目标交易金额。即当获取到交易请求后,各个交易账户根据交易金额以及存款金额,来对存款金额中可以用于交易的目标交易金额进行锁定,在锁定成功的情况下,根据锁定的目标交易金额以及交易金额,向各个交易账户发送实际的交易指令,进行交易账户的变更。而如果本身交易账户中没有存款金额导致锁定失败,则交易无法进行,也无需发送资源处理指令,交易账户中的金额也没有实际发生改变。
在一种可选的实施例中,是由各个目标应用来确定是否有足够的资源来进行锁定的,即对于步骤S102中锁定目标应用中目标资源的过程,如图2所示,包括:
步骤S201:生成包括待锁定资源量的资源锁定请求;
步骤S202:接收响应于资源锁定请求的资源锁定结果;
步骤S203:根据资源锁定结果,对资源锁定结果中的目标资源进行锁定。
其中,资源锁定请求是根据资源处理请求生成的,具体待锁定资源量的确定过程在后续实施例中进行了详细描述,此处不进行赘述。在一种可选的实施例中,资源锁定结果可以指示资源是否锁定成功,也可以进一步指示锁定成功的目标资源量。通过将生成包括待锁定资源量的资源锁定请求发送给各个目标应用,可以便于目标应用根据自身的资源存储量是否能够满足待锁定资源量得到资源锁定结果。
在现有的锁定过程中,需要在每发送一个资源锁定请求后,等待返回的资源锁定结果,然后在接收到结果后,发送下一个资源锁定请求。虽然等待的过程通常较短,但是在数据量较大的时候,仍然需要大量的等待时间,对于资源的处理效率较低,因此在进一步可选的实施例中,生成资源请求的过程与接收资源锁定结果的过程是通过不同的线程异步执行的,即通过第一线程执行生成指示了目标应用中待锁定资源量的资源锁定请求的步骤,通过第二线程执行接收响应于资源锁定请求的资源锁定结果的步骤,并执行根据锁定的目标资源和所述资源请求量,向目标应用发送资源处理指令的步骤。本发明实施例通过不同的线程来执行不同的步骤,可以取消对资源锁定结果的等待过程,有效提高资源的处理效率。
对于步骤S203,在一种可选的实施例中,可以将目标资源锁定在本地,通过将锁定成功的目标资源锁定在本地,可以简化与持有资源的目标应用的交互过程,虽然还未进行实际的交收,有可能存在资源处理失败的情况,但将资源留存在本地,可以有效提高数据的计算效率,即使此次的资源处理失败,也可以将锁定在本地的资源直接用于下一次的资源处理,无需重复多次向目标应用获取资源,极大地提高了资源处理效率。
在本发明一种可选的实施例中,对于锁定目标应用中目标资源的过程,可以分为两种锁定方式,一种为整合多个资源处理请求然后批量进行锁定,即对多个资源处理请求整合后,仅生成一个资源锁定请求。另一种为针对每一个资源处理请求,逐个进行流式锁定,即针对每一个资源处理请求都需要生成一个资源锁定请求。两种锁定方式均可以解决异步调用过程中由于时间差所导致的资源利用不充分的问题。
下面,以图3为例,针对批量锁定的方式进行具体说明:
在一种可选的实施例中,资源处理请求还指示了对一个或多个目标应用执行的处理操作,同样以交易场景为例,交易请求对应的处理操作可以为增加金额和扣除金额,对于其他资源也可以对应存在资源的增加(释放)和扣除(占用)。对于批量锁定的方式,需要先对多个资源处理请求进行整合,具体如图3所示,包括:
步骤S301:根据处理操作对多个资源处理请求进行聚合,确定一个或多个目标应用分别对应的资源请求量总额;
步骤S302:以资源请求量总额作为待锁定资源量,生成资源锁定请求。
由于还未进行实际的交收,对于资源增加的交易可能存在执行失败的情况,因此本发明实施例只对资源占用的资源处理请求进行聚合,以保证在资源增加的交易失败的情况下,仍能对资源占用的资源处理请求进行顺利处理。即步骤S301在进一步可选的实施例中,包括:将处理操作为资源占用的多个资源处理请求进行聚合,确定一个或多个目标应用分别对应的资源请求量总额。示例性地,交易请求A为扣除交易账户1中的100元、扣除交易账户2中的50元,扣除交易账户3中的100元;交易请求B为向交易账户1转入(增加)50元,向交易账户2转入(增加)50元;交易请求C为扣除交易账户1中的30元,那么聚合的过程即为扣除的交易金额的总额,具体的,交易账户1扣除130元,交易账户2扣除50元,交易账户3扣除100元。通过根据处理操作对资源处理请求进行聚合,即将多个流式的资源处理请求转化为批量的资源处理请求,以批次进行统一处理,可以实现一次性处理多个资源处理请求,从而避免了流式异步处理过程存在时间差的问题,
当对资源处理请求进行聚合,并统一发送了资源锁定请求后,可以收到目标应用反馈的资源锁定结果,在一种可选的实施例中,资源锁定请求中还包括请求类型。对于不同类型的资源锁定请求,在接收到指示了锁定成功的资源锁定结果后,对应发送不同的资源处理指令。具体如图4所示,包括:
步骤S401:在请求类型为第一类型的情况下,资源处理指令包括是否生效所述资源锁定请求;
步骤S402:在请求类型为第二类型的情况下,资源处理指令包括执行所述资源处理请求的资源使用明细。
其中,不同的请求类型可以对应于资源处理请求的不同优先级,或者不同的交易主体,在本发明实施例中,将第一类型定义为事务类型,将第二类型定义为现场类型,以对不同类型进行区分。
在一种可选的实施例中,在批量锁定的资源锁定请求对应于第二类型时,需要接收资源锁定结果后,根据资源使用明细再针对逐个资源处理请求发送资源处理指令。也就是说,虽然是以批次进行资源锁定的,但是锁定的结果中,会存在每一个资源处理请求对应的资源使用明细,发送资源处理指令的时候,也是会根据资源使用明细进行逐个发送。在进一步可选的实施例中,在向所述目标应用发送资源处理指令后,还包括:在请求指令为第一类型的情况下,当资源处理指令为生效资源锁定请求时,根据锁定生效的目标资源确定资源使用明细,并解除锁定;当资源处理指令为不生效资源锁定请求时,直接解除锁定;在请求类型为第二类型的情况下,根据资源使用明细生成资源释放指令,并将资源释放指令发送给各个所述目标应用,以使各个所述目标应用根据所述资源释放指令对已锁定的目标资源进行释放。通过预先将批量资源处理请求对应的资源请求量总和以批量的方式锁定到本地,可以减少与各个交易账户(目标应用)的信息交互次数,同时资源的锁定与释放均以批次为单位,可以有效提高处理效率。而后在本地进行逐个资源处理请求的计算处理,也可以大大节省内部资源,提升计算效率。
下面,以图5和图6为例,针对逐个流式锁定的方式进行具体说明:
在一种可选的实施例中,针对每一个资源处理请求,步骤S102如图5所示,包括:
步骤S501:生成与每一个资源处理请求分别对应的资源锁定请求;
步骤S502:根据与各个资源锁定请求分别对应的资源锁定结果,将各个资源锁定结果中锁定成功的目标资源分别锁定在本地。
与上述批量锁定所不同的是,流式锁定中的待锁定资源量就是指每个资源处理请求中的资源请求量,而返回的资源锁定结果也是根据是否可以满足每个资源处理请求中的资源请求量所得到的。
在此种锁定方式下,对于资源处理请求的处理过程,如图6所示,可以包括:
步骤S601:将各个资源处理请求分别对应锁定成功的目标资源进行加和,得到本地的资源锁定总量;
步骤S602:在资源锁定总量不小于资源请求量的情况下,生成资源处理指令,并将所述资源处理指令发送至所目标应用,以分别对每个所述资源处理请求进行处理。
其中,本地的资源锁定总量是指历史资源锁定请求中,锁定成功的资源量的总和,可以理解为逐笔进行资源锁定,每当锁定成功后,将锁定的资源放入本地的资源池中,以用作后续的资源处理请求。示例性地,在流式锁定的过程中,可能出现某些目标应用锁定成功,而某些目标应用锁定失败的情况。例如,交易账户1中的存款金额为100元,交易账户2中的存款金额为300元,交易账户3中的存款金额为0元。交易请求A为扣除交易账户1中的100元、扣除交易账户2中的50元,扣除交易账户3中的100元;交易请求B为扣除交易账户1中的30元,扣除交易账户2中100元。对于交易请求A,锁定了交易账户1中的100元,以及交易账户2中的50元,但由于交易账户C中余额不足,因此无法对交易账户C中的金额进行锁定,那么此时本地的资源锁定总量为:交易账户1中100元,交易账户2中50元,无法满足交易请求A的资源请求量,因此交易请求A处理失败。继续处理交易请求B,由于交易账户1中的100元已经被锁定,因此在交易请求B中,无法继续锁定交易账户,但是交易账户2中的存款为250元,仍可以满足扣除100元的要求,因此继续从交易账户2中锁定100元,那么此时,本地的资源锁定总量为:交易账户1中100元,交易账户2中100+50=150元,可以满足交易请求B(扣除交易账户1中的30元,扣除交易账户2中100元)的资源处理量,因此交易请求B处理成功,对应生成资源处理指令,并将所述资源处理指令发送至所目标应用。
通过上述处理过程可以看出,即使资源处理请求无法处理,但是对于满足锁定需求的目标应用中的目标资源,是持续进行锁定并以累加的形式锁定在本地的,以便在后续其他资源处理请求的快速处理,提升处理效率。
根据本发明实施例的资源处理的方法,通过根据目标应用中的资源存储量或资源处理请求的资源请求量,来锁定目标应用中的目标资源,即在资源调用前通过锁定的方式对资源进行预占,最终根据锁定的目标资源和资源请求量,即预占的结果,向目标应用发送资源处理指令,以分别对一个或多个资源处理请求进行处理。即使资源处理请求未能处理成功,锁定的目标资源也可继续用于其他资源处理请求,避免了由于前一资源请求的资源调用失败未归还,导致了后一资源请求无法顺利完成的情况。
图7是根据本发明实施例的资源处理的装置的主要模块的示意图。
如图7所示,本发明实施例的资源处理的装置700包括:
获取模块701,用于获取一个或多个资源处理请求;每一个所述资源处理请求指示了一个或多个目标应用分别对应的资源请求量;
锁定模块702,用于根据所述目标应用中的资源存储量或所述资源请求量,锁定所述目标应用中的目标资源;
处理模块703,用于根据锁定成功的目标资源和所述资源请求量,向所述目标应用发送资源处理指令,以分别对所述多个资源处理请求进行处理。
在本发明一种可选的实施例中,所述锁定模块702还用于,生成包括待锁定资源量的资源锁定请求;接收响应于所述资源锁定请求的资源锁定结果;在所述资源锁定结果指示了锁定成功的情况下,根据所述资源锁定结果,对所述资源锁定结果中的目标资源进行锁定。
在本发明一种可选的实施例中,通过第一线程执行生成指示了所述目标应用中待锁定资源量的资源锁定请求的步骤,通过第二线程执行接收响应于所述资源锁定请求的资源锁定结果的步骤,并执行所述根据锁定的目标资源和所述资源请求量,向所述目标应用发送资源处理指令的步骤。
在本发明一种可选的实施例中,所述资源处理请求还指示了对一个或多个目标应用执行的处理操作;所述锁定模块702还用于,根据所述处理操作对所述多个资源处理请求进行聚合,确定所述一个或多个目标应用分别对应的资源请求量总额;以所述资源请求量总额作为待锁定资源量,生成所述资源锁定请求。
在本发明一种可选的实施例中,所述锁定模块702还用于,将所述处理操作为资源占用的多个资源处理请求进行聚合,确定所述一个或多个目标应用分别对应的资源请求量总额。
在本发明一种可选的实施例中,所述资源锁定请求包括请求类型;所述处理模块703还用于,在所述请求类型为第一类型的情况下,所述资源处理指令包括是否生效所述资源锁定请求;在所述请求类型为第二类型的情况下,所述资源处理指令包括执行所述资源处理请求的资源使用明细。
在本发明一种可选的实施例中,所述装置还包括:释放模块,用于在所述向所述目标应用发送资源处理指令之后,在所述请求类型为第一类型的情况下,当所述资源处理指令为生效所述资源锁定请求时,根据锁定生效的目标资源确定资源使用明细,并解除锁定;当所述资源处理指令为不生效所述资源锁定请求时,直接解除锁定;在所述请求类型为第二类型的情况下,根据所述资源使用明细生成资源释放指令,并将所述资源释放指令发送给各个所述目标应用,以使各个所述目标应用根据所述资源释放指令对已锁定的目标资源进行释放。
在本发明一种可选的实施例中,所述锁定模块702还用于,生成与每一个所述资源处理请求分别对应的资源锁定请求;根据与各个资源锁定请求分别对应的资源锁定结果,将各个所述资源锁定结果中锁定成功的目标资源分别锁定在本地。
在本发明一种可选的实施例中,所述处理模块703还用于,将各个所述资源处理请求分别对应锁定成功的目标资源进行加和,得到本地的资源锁定总量;在所述资源锁定总量不小于所述资源请求量的情况下,生成资源处理指令,并将所述资源处理指令发送至所目标应用,以分别对每个所述资源处理请求进行处理。
根据本发明实施例的资源处理的装置,通过根据目标应用中的资源存储量或资源处理请求的资源请求量,来锁定目标应用中的目标资源,即在资源调用前通过锁定的方式对资源进行预占,最终根据锁定的目标资源和资源请求量,即预占的结果,向目标应用发送资源处理指令,以分别对一个或多个资源处理请求进行处理。即使资源处理请求未能处理成功,锁定的目标资源也可继续用于其他资源处理请求,避免了由于前一资源请求的资源调用失败未归还,导致了后一资源请求无法顺利完成的情况。
图8是根据本发明实施例的资源处理的系统的示意图。
如图8所示,本发明实施例的资源处理的系统800包括:上述资源处理的装置801以及一个或多个目标应用802;其中,
所述资源处理的装置801用于获取一个或多个资源处理请求;每一个所述资源处理请求指示了一个或多个目标应用分别对应的资源请求量;根据所述目标应用中的资源存储量或所述资源请求量,锁定所述目标应用中的目标资源;根据锁定成功的目标资源和所述资源请求量,向所述目标应用发送资源处理指令,以分别对所述多个资源处理请求进行处理;
所述目标应用802用于接收所述资源处理的装置发送的资源处理指令,并根据所述资源处理指令进行处理。
其中,资源处理请求通常是从上游的资源监管系统获得的,资源处理的系统对资源处理请求进行处理后,再将资源处理指令发送到对应的目标应用中,以对资源处理请求进行实际的操作。
在一种可选的实施例中,目标应用在接收到资源锁定请求后,需要根据资源锁定请求以及自身的资源存储情况对应生成资源锁定结果,具体如图9所示,目标应用802还用于:
步骤S901:接收资源处理的装置发送的资源锁定请求,资源锁定请求中指示了一个或多个资源处理请求分别对应的请求类型、以及待锁定资源量;
步骤S902:确定目标应用中与请求类型对应的资源存储量;
步骤S903:根据待锁定资源量以及资源存储量确定资源锁定结果。
对于不同的请求类型,目标应用中可用的资源存储量可能不同,因此需要根据请求类型确定目标应用中对应的资源存储量。在进一步可选的实施例中,可以如图10所示,步骤S902中进一步包括:
步骤S1001:在请求类型为第一类型的情况下,确定资源处理请求对应的业务编码;
步骤S1002:目标应用对应的总资源存储量中可用于业务编码的资源存储量。
对于目标应用来说,资源的占用(扣除)以及资源的释放(增加)仅在目标应用的内部可见,且作为记录,资源占用和资源释放的过程可能并未执行,即对于资源的增加还未执行成功,可能存在执行失败的情况,因此不能将资源释放的记录对外可见,即资源处理装置是无法得知目标应用中资源释放的结果的。因此对于第一类型(事务类型)的资源锁定请求,可以进一步根据业务编码进行不同业务的划分,也就是说,事务类型下包括多种不同各业务。在进一步可选的实施例中,对于相同的业务,资源释放和资源占用可以进行轧差,而对于不同的业务,只对资源占用的部分可见,资源释放的部分是不可见的。也就是说,通过对业务编码的划分,实现了事务内可见事务外不可见的效果。具体如下:针对属于同一业务编码的一个或多个资源处理请求,根据处理操作为资源占用以及资源释放的资源处理请求,确定目标应用中的资源存储量;针对不属于同一业务编码的一个或多个资源处理请求,根据处理操作为资源占用的资源处理请求,确定目标应用中的资源存储量。通过上述过程,可以保证资源处理装置获取的仅为假设资源占用全部成功后的结果,即目标应用中一定可用的资源存储量,将可能存在变动的资源存储量排除在外,避免因为资源存储量出现变动而引发后续资源处理失败的情况。
进一步地,可以将第二类型(现场类型)的资源锁定请求当成一个大的业务类型,根据所有属于第二类型(现场类型)的资源锁定请求,确定资源存储量。即在请求类型为第二类型的情况下,根据属于第二类型的请求的一个或多个资源处理指令,确定目标应用在第二类型请求下的资源存储量。
对于步骤S1003,在一种可选的实施例中,包括:根据待锁定资源量与资源存储量中的较小值,确定资源锁定结果。也就是说,当待锁定资源量较小时,仅需要在资源存储量中锁定待锁定资源量的部分,而当资源存储量较小时,则将目标应用中的资源存储量全部进行锁定。通过此种方式,可以尽可能减少目标资源的锁定次数,提高资源处理请求的处理效率。
另外,在目标应用接收到资源处理指令前,也需要对锁定成功的目标资源进行记录,以保证清楚记录自身的资源存储量的变化。因此在一种可选的实施例中,如图11所示,目标应用802还用于:
步骤S1101:对锁定成功的目标资源进行记录,生成资源锁定记录;
步骤S1102:根据资源处理指令中的资源使用明细确定待补偿的虚拟资源使用记录;
步骤S1103:接收资源释放指令,并根据虚拟使用资源记录对所述资源锁定记录进行更新。
由于资源处理指令是逐条进行发送的,且在发送后目标应用的资源发生了实际变动,但是锁定的资源还未进行释放,仅此相当于在已占用资源的基础上,再次发生了资源的占用,因此需要根据资源处理指令中的资源使用明细对已经发生实际变动的资源进行补偿,即生成对应的待补偿的虚拟资源使用记录,以在接收到资源释放指令后对资源锁定记录进行更新,从而保证目标应用所记录资源的准确性。
在实际应用过程中,当资源锁定请求为第二类型(现场类型)时,可能会出现资源存储量为负的情况,为了满足可以顺利处理后续的资源处理请求,需要对资源进行虚拟补偿。因此在进一步可选的实施例中,在步骤S1102之后,还可以如图12所示,执行:
步骤S1201:在目标应用在第二类型请求下的资源存储量小于预设存储量的情况下,根据资源存储量生成待补偿的虚拟资源存储记录;
步骤S1202:根据虚拟资源存储记录确定虚拟资源存储量,根据待锁定资源量以及虚拟资源存储量确定资源锁定结果。
具体地,对于待补偿的虚拟资源存储记录,在进一步可选的实施例中,可以根据资源存储量生成虚拟资源存储记录对应的虚拟资源存储量,以使资源存储量与虚拟资源存储量的加和不小于预设第二阈值。示例性地,在从交易账户1获取到的资源存储量为-100元时,根据资源存储量生成虚拟资源存储量为+100,这样资源存储量与虚拟资源存储量的加和为0,不小于预设第二阈值,才可以在下一次获取资源存储量的时候,不会为负值。
可以理解的是,针对聚合后的一个或多个资源处理请求,可以生成表示批次的批次编码,以便于对批量的资源处理请求进行区分。当系统出现崩溃重启时,可以根据聚合后的批次编码得到未处理的资源处理指令以及已经处理过的资源处理指令,以避免重复执行资源处理指令。在一种可选的实施例中,针对系统崩溃重启的情况,如图13所示,目标应用802还用于:
步骤S1301:对资源处理指令执行幂等操作,判断是否存在与各个资源处理指令对应的历史处理结果;
步骤S1302:如果是,将所述历史处理结果返回给资源处理的装置;
步骤S1303:如果否,对不存在对应处理结果的目标资源处理指令进行指令处理,并将生成的新的处理结果返回给资源处理的装置。
在一种可选的实施例中,由于具有表示批次的批次编码,因此步骤S1301中对所述资源处理指令执行幂等操作,可以进一步包括:对所述资源处理指令对应的批次编码执行幂等操作。通过对批次编码的幂等操作,可判断各个资源处理指令是否存在对应的处理结果,如果是,则说明资源处理指令已经处理过一次,自然无需再次处理,直接将历史处理结果返回给资源处理的装置即可。如果否,则说明资源处理指令还未进行处理,需要目标应用根据资源处理指令进行处理,并将生成的新的处理结果返回给资源处理的装置。需要说明的是,对于资源处理指令的处理结果,可以通过缓存等存储设备进行存储,以便于幂等操作时获取处理结果。通过幂等操作,有效避免了重复处理的情况,实现了系统的高可用恢复。
对于系统崩溃重启的情况,与批处理资源处理请求不同的是,每个资源处理请求本身带有对应的业务编码。因此在进一步可选的实施例中,只需要将批量处理中的批次编码更改为业务编码,就可以进行幂等操作,具体如图14所示,目标应用还用于:
步骤S1401:对资源处理指令对应的业务编码执行幂等操作,判断是否存在与各个资源处理指令对应的历史处理结果;
步骤S1402:如果是,将所述历史处理结果返回给所述资源处理的装置;
步骤S1403:如果否,对不存在对应处理结果的目标资源处理指令进行指令处理,并将生成的新的处理结果返回给所述资源处理的装置。
下面以一具体实例,对不同请求类型下的具体资源处理过程进行详细说明,如图15所示,包括:
步骤S1501:资源处理的装置获取一个或多个资源处理请求;每一个资源处理请求指示了一个或多个目标应用分别对应的资源请求量;
步骤S1502:资源处理的装置通过第一线程生成包括待锁定资源量的资源锁定请求,并将资源锁定请求发送至对应的目标应用;资源锁定请求包请求类型,其中请求类型包括事务类型和现场类型;
具体而言,针对事务类型的资源锁定请求,待锁定资源量与资源处理请求量相同,无需进行其他计算,继续执行步骤S903至步骤S909即可:
步骤S1503:目标应用接收资源锁定请求,确定资源处理请求对应的业务编码;
步骤S1504:确定目标应用对应的总资源存储量中可用于业务编码的资源存储量;其中,针对属于同一业务编码的一个或多个资源处理请求,根据处理操作为资源占用以及资源释放的资源处理请求,确定可用于业务编码的资源存储量;针对不属于同一业务编码的一个或多个资源处理请求,根据处理操作为资源占用的资源处理请求,确定可用于业务编码的资源存储量;
步骤S1505:根据待锁定资源量以及资源存储量确定资源锁定结果,并将资源锁定结果发送至资源处理的装置;其中,资源锁定结果指示了锁定成功的目标资源的资源量;
步骤S1506:资源处理的装置通过第二线程目标应用接收响应于资源锁定请求的资源锁定结果;
步骤S1507:资源处理的装置将各个资源处理请求分别对应锁定成功的目标资源进行加和,得到本地的资源锁定总量;
步骤S1508:在资源锁定总量不小于资源请求量的情况下,资源处理的装置生成执行资源处理请求的资源处理指令,并将资源处理指令发送至目标应用,以分别对每个资源处理请求进行处理;
步骤S1509;根据资源处理指令生成资源释放指令,并将资源释放指令发送给各个目标应用,以使各个目标应用根据资源释放指令对已锁定的目标资源进行释放。
针对现场类型的资源锁定请求,待锁定资源量与事务类型的并不相同,需要进行聚合的计算,即步骤S1502具体包括:
步骤S15021:资源处理的装置将处理操作为资源占用的多个资源处理请求进行聚合,确定一个或多个目标应用分别对应的资源请求量总额;
步骤S15022:以资源请求量总额作为待锁定资源量,生成资源锁定请求;其中,资源锁定请求中包括了聚合的批次编码;
在得到了包括待锁定资源量的资源锁定请求后,继续执行步骤S1510至步骤S1515:
步骤S1510:目标应用接收资源锁定请求,确定资源处理请求对应的批次编码;
步骤S1511:根据属于第二类型的请求的一个或多个资源处理指令,确定目标应用对应的总资源存储量中可用于现场类型的资源存储量;
步骤S1512:根据待锁定资源量以及资源存储量确定资源锁定结果,并将资源锁定结果发送至资源处理的装置;其中,资源锁定结果指示了锁定成功的目标资源的资源量;
步骤S1513:资源处理的装置通过第二线程目标应用接收响应于资源锁定请求的资源锁定结果,并将目标资源锁定在本地;
步骤S1514:在资源锁定总量不小于资源请求量的情况下,资源处理的装置生成包括有资源使用明细的资源处理指令,并将资源处理指令发送至所目标应用,以分别对每个资源处理请求进行处理;
步骤S1515;根据资源处理指令生成资源释放指令,并将资源释放指令发送给各个目标应用,以使各个目标应用根据资源释放指令对当前批次编码下已锁定的目标资源进行释放。
根据本发明实施例的资源处理的系统,通过根据目标应用中的资源存储量或资源处理请求的资源请求量,来锁定目标应用中的目标资源,即在资源调用前通过锁定的方式对资源进行预占,最终根据锁定的目标资源和资源请求量,即预占的结果,向目标应用发送资源处理指令,以分别对一个或多个资源处理请求进行处理。即使资源处理请求未能处理成功,锁定的目标资源也可继续用于其他资源处理请求,避免了由于前一资源请求的资源调用失败未归还,导致了后一资源请求无法顺利完成的情况。同时在目标应用内部的处理过程中,实现了资源释放外部不可见、内部可见,且资源占用外部可见、内部也可见的目的,保证了资源处理的装置所获取的资源存储量高可用,避免因为资源存储量由于内部资源变动而引发后续资源处理的装置资源处理失败的情况。
图16示出了可以应用本发明实施例的资源处理的方法或资源处理的装置的示例性系统架构1600。
如图16所示,系统架构1600可以包括终端设备1601、1602、1603,网络1604和服务器1605。网络1604用以在终端设备1601、1602、1603和服务器1605之间提供通信链路的介质。网络1604可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备1601、1602、1603通过网络1604与服务器1605交互,以接收或发送数据等。终端设备1601、1602、1603上可以安装有各种目标应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备1601、1602、1603可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器1605可以是提供各种服务的服务器,例如对终端设备1601、1602、1603所发送的资源存储量提供支持的后台管理服务器。后台管理服务器可以对接收到的资源存储量等数据进行分析等处理,并将处理结果(例如资源处理指令)反馈给终端设备。
需要说明的是,本发明实施例所提供的资源处理的方法一般由服务器1605执行,相应地,资源处理的装置一般设置于服务器1605中。
应该理解,图16中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图17,其示出了适于用来实现本发明实施例的终端设备的计算机系统1700的结构示意图。图17示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图17所示,计算机系统1700包括中央处理单元(CPU)1701,其可以根据存储在只读存储器(ROM)1702中的程序或者从存储部分1708加载到随机访问存储器(RAM)1703中的程序而执行各种适当的动作和处理。在RAM 1703中,还存储有系统1700操作所需的各种程序和数据。CPU1701、ROM 1702以及RAM 1703通过总线1704彼此相连。输入/输出(I/O)第一接口1705也连接至总线1704。
以下部件连接至I/O第一接口1705:包括键盘、鼠标等的输入部分1706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1707;包括硬盘等的存储部分1708;以及包括诸如LAN卡、调制解调器等的网络第一接口卡的通信部分1709。通信部分1709经由诸如因特网的网络执行通信处理。驱动器1710也根据需要连接至I/O第一接口1705。可拆卸介质1711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1710上,以便于从其上读出的计算机程序根据需要被安装入存储部分1708。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1709从网络上被下载和安装,和/或从可拆卸介质1711被安装。在该计算机程序被中央处理单元(CPU)1701执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括获取模块、锁定模块和处理模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,获取模块还可以被描述为“获取一个或多个资源处理请求的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:获取一个或多个资源处理请求;每一个所述资源处理请求指示了一个或多个目标应用分别对应的资源请求量;根据所述目标应用中的资源存储量或所述资源请求量,锁定所述目标应用中的目标资源;根据锁定成功的目标资源和所述资源请求量,向所述目标应用发送资源处理指令,以分别对所述一个或多个资源处理请求进行处理。
根据本发明实施例的技术方案,通过根据目标应用中的资源存储量或资源处理请求的资源请求量,来锁定目标应用中的目标资源,即在资源调用前通过锁定的方式对资源进行预占,最终根据锁定的目标资源和资源请求量,即预占的结果,向目标应用发送资源处理指令,以分别对一个或多个资源处理请求进行处理。即使资源处理请求未能处理成功,锁定的目标资源也可继续用于其他资源处理请求,避免了由于前一资源请求的资源调用失败未归还,导致了后一资源请求无法顺利完成的情况。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (21)
1.一种资源处理的方法,其特征在于,包括:
获取一个或多个资源处理请求;每一个所述资源处理请求指示了一个或多个目标应用分别对应的资源请求量;
根据所述目标应用中的资源存储量或所述资源请求量,锁定所述目标应用中的目标资源;
根据锁定成功的目标资源和所述资源请求量,向所述目标应用发送资源处理指令,以分别对所述一个或多个资源处理请求进行处理。
2.根据权利要求1所述的方法,其特征在于,所述锁定所述目标应用中的目标资源,包括:
生成包括待锁定资源量的资源锁定请求;
接收响应于所述资源锁定请求的资源锁定结果;
根据所述资源锁定结果,对所述资源锁定结果中的目标资源进行锁定。
3.根据权利要求2所述的方法,其特征在于,包括:
通过第一线程执行生成指示了所述目标应用中待锁定资源量的资源锁定请求的步骤,通过第二线程执行接收响应于所述资源锁定请求的资源锁定结果的步骤,并执行所述根据锁定的目标资源和所述资源请求量,向所述目标应用发送资源处理指令的步骤。
4.根据权利要求2所述的方法,其特征在于,所述资源处理请求还指示了对一个或多个目标应用执行的处理操作;所述生成包括待锁定资源量的资源锁定请求,包括:
根据所述处理操作对所述多个资源处理请求进行聚合,确定所述一个或多个目标应用分别对应的资源请求量总额;
以所述资源请求量总额作为待锁定资源量,生成所述资源锁定请求。
5.根据权利要求4所述的方法,其特征在于,所述根据所述处理操作对所述多个资源处理请求进行聚合,确定所述一个或多个目标应用分别对应的资源请求量总额,包括:
将所述处理操作为资源占用的多个资源处理请求进行聚合,确定所述一个或多个目标应用分别对应的资源请求量总额。
6.根据权利要求2所述的方法,其特征在于,所述资源锁定请求包括请求类型;所述根据锁定的目标资源和所述资源请求量,向所述目标应用发送资源处理指令,包括:
在所述请求类型为第一类型的情况下,所述资源处理指令包括是否生效所述资源锁定请求;
在所述请求类型为第二类型的情况下,所述资源处理指令包括执行所述资源处理请求的资源使用明细。
7.根据权利要求6所述的方法,其特征在于,在所述向所述目标应用发送资源处理指令之后,还包括:
在所述请求类型为第一类型的情况下,当所述资源处理指令为生效所述资源锁定请求时,根据锁定生效的目标资源确定资源使用明细,并解除锁定;当所述资源处理指令为不生效所述资源锁定请求时,直接解除锁定;
在所述请求类型为第二类型的情况下,根据所述资源使用明细生成资源释放指令,并将所述资源释放指令发送给各个所述目标应用,以使各个所述目标应用根据所述资源释放指令对已锁定的目标资源进行释放。
8.根据权利要求2所述的方法,其特征在于,所述根据所述目标应用中的资源存储量或所述资源请求量,锁定所述目标应用中的目标资源,包括:
生成与每一个所述资源处理请求分别对应的资源锁定请求;
根据与各个资源锁定请求分别对应的资源锁定结果,将各个所述资源锁定结果中锁定成功的目标资源分别锁定在本地。
9.根据权利要求8所述的方法,其特征在于,所述根据锁定的目标资源和所述资源请求量,向所述目标应用发送资源处理指令,以分别对所述多个资源处理请求进行处理,包括:
将各个所述资源处理请求分别对应锁定成功的目标资源进行加和,得到本地的资源锁定总量;
在所述资源锁定总量不小于所述资源请求量的情况下,生成资源处理指令,并将所述资源处理指令发送至所目标应用,以分别对每个所述资源处理请求进行处理。
10.一种资源处理的装置,其特征在于,包括:
获取模块,用于获取一个或多个资源处理请求;每一个所述资源处理请求指示了一个或多个目标应用分别对应的资源请求量;
锁定模块,用于根据所述目标应用中的资源存储量或所述资源请求量,锁定所述目标应用中的目标资源;
处理模块,用于根据锁定成功的目标资源和所述资源请求量,向所述目标应用发送资源处理指令,以分别对所述多个资源处理请求进行处理。
11.一种资源处理的系统,其特征在于,包括:权利要求10所述的资源处理的装置以及一个或多个目标应用;其中,
所述资源处理的装置用于获取一个或多个资源处理请求;每一个所述资源处理请求指示了一个或多个目标应用分别对应的资源请求量;根据所述目标应用中的资源存储量或所述资源请求量,锁定所述目标应用中的目标资源;根据锁定成功的目标资源和所述资源请求量,向所述目标应用发送资源处理指令,以分别对所述多个资源处理请求进行处理;
所述目标应用用于接收所述资源处理的装置发送的资源处理指令,并根据所述资源处理指令进行处理。
12.根据权利要求11所述的系统,其特征在于,所述目标应用还用于,
接收所述资源处理的装置发送的资源锁定请求,所述资源锁定请求中指示了一个或多个资源处理请求分别对应的请求类型、以及待锁定资源量;
确定所述目标应用中与所述请求类型对应的资源存储量;
根据所述待锁定资源量以及所述资源存储量确定资源锁定结果。
13.根据权利要求12所述的系统,其特征在于,所述确定所述目标应用中与所述请求类型对应的资源存储量,包括:
在所述请求类型为第一类型的情况下,确定所述资源处理请求对应的业务编码;
确定所述目标应用对应的总资源存储量中可用于所述业务编码的资源存储量。
14.根据权利要求13所述的系统,其特征在于,所述确定所述目标应用的总资源存储量中可用于所述业务编码的资源存储量,包括:
针对属于同一业务编码的一个或多个所述资源处理请求,根据处理操作为资源占用以及资源释放的所述资源处理请求,确定可用于所述业务编码的资源存储量;
针对不属于同一业务编码的一个或多个所述资源处理请求,根据处理操作为资源占用的所述资源处理请求,确定可用于所述业务编码的资源存储量。
15.根据权利要求14所述的系统,其特征在于,所述确定所述目标应用中与所述请求类型对应的资源存储量,还包括:
在所述请求类型为第二类型的情况下,根据属于所述第二类型的请求的一个或多个资源处理指令,确定所述目标应用在第二类型请求下的资源存储量。
16.根据权利要求11所述的系统,其特征在于,所述目标应用还用于,
对锁定成功的目标资源进行记录,生成资源锁定记录;
根据所述资源处理指令中的资源使用明细确定待补偿的虚拟资源使用记录;
接收资源释放指令,并根据所述虚拟资源使用记录对所述资源锁定记录进行更新。
17.根据权利要求15所述的系统,其特征在于,所述根据所述待锁定资源量以及所述资源存储量确定资源锁定结果,包括:当所述目标应用在第二类型请求下的资源存储量小于预设存储量的情况下,根据所述资源存储量生成待补偿的虚拟资源存储记录;
根据所述虚拟资源存储记录确定虚拟资源存储量,根据所述待锁定资源量以及所述虚拟资源存储量确定资源锁定结果。
18.根据权利要求12所述的系统,其特征在于,所述根据所述资源锁定请求以及所述资源存储量确定资源锁定结果,包括:
根据所述待锁定资源量与所述资源存储量中的较小值,确定资源锁定结果。
19.根据权利要求12所述的系统,其特征在于,还包括:
在所述资源处理的装置崩溃重启的情况下,对所述资源处理指令执行幂等操作,判断是否存在与各个所述资源处理指令对应的历史处理结果;
如果否,对不存在对应处理结果的目标资源处理指令进行指令处理,并将生成的新的处理结果返回给所述资源处理的装置;
如果是,将所述历史处理结果返回给所述资源处理的装置。
20.一种用于资源处理的电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-9中任一所述的方法。
21.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-9中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310111822.6A CN115827254A (zh) | 2023-02-09 | 2023-02-09 | 一种资源处理的方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310111822.6A CN115827254A (zh) | 2023-02-09 | 2023-02-09 | 一种资源处理的方法、装置和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115827254A true CN115827254A (zh) | 2023-03-21 |
Family
ID=85521316
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310111822.6A Pending CN115827254A (zh) | 2023-02-09 | 2023-02-09 | 一种资源处理的方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115827254A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110275766A (zh) * | 2019-06-25 | 2019-09-24 | 深圳前海微众银行股份有限公司 | 一种任务处理方法及装置 |
CN110599182A (zh) * | 2019-09-27 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种资源管理方法及装置 |
CN111415146A (zh) * | 2020-06-08 | 2020-07-14 | 浙江口碑网络技术有限公司 | 资源数据的处理方法、装置及设备 |
CN114090604A (zh) * | 2021-11-30 | 2022-02-25 | 平安证券股份有限公司 | 请求处理方法及装置 |
US20220343296A1 (en) * | 2021-04-27 | 2022-10-27 | Wedge Financial, Inc. | Systems, methods, and storage media for settling transaction payments |
-
2023
- 2023-02-09 CN CN202310111822.6A patent/CN115827254A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110275766A (zh) * | 2019-06-25 | 2019-09-24 | 深圳前海微众银行股份有限公司 | 一种任务处理方法及装置 |
CN110599182A (zh) * | 2019-09-27 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种资源管理方法及装置 |
CN111415146A (zh) * | 2020-06-08 | 2020-07-14 | 浙江口碑网络技术有限公司 | 资源数据的处理方法、装置及设备 |
US20220343296A1 (en) * | 2021-04-27 | 2022-10-27 | Wedge Financial, Inc. | Systems, methods, and storage media for settling transaction payments |
CN114090604A (zh) * | 2021-11-30 | 2022-02-25 | 平安证券股份有限公司 | 请求处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107729139B (zh) | 一种并发获取资源的方法和装置 | |
US8996647B2 (en) | Optimizing storage between mobile devices and cloud storage providers | |
CN111277639B (zh) | 一种保持数据一致性的方法和装置 | |
CN111127181B (zh) | 一种凭证记账方法和装置 | |
CN111478781B (zh) | 一种消息广播的方法和装置 | |
CN113127225A (zh) | 一种数据处理任务的调度方法、装置和系统 | |
CN111290842A (zh) | 一种任务执行方法和装置 | |
CN112819638A (zh) | 交易判重的方法、装置、设备和计算机可读介质 | |
CN112884181A (zh) | 额度信息处理方法和装置 | |
CN113742389A (zh) | 一种业务处理方法和装置 | |
CN113760522A (zh) | 一种任务处理方法和装置 | |
CN109284177B (zh) | 一种数据更新方法和装置 | |
CN115827254A (zh) | 一种资源处理的方法、装置和系统 | |
CN114374657A (zh) | 一种数据处理方法和装置 | |
CN108683608B (zh) | 分配流量的方法和装置 | |
CN112597224A (zh) | 数据导出方法、数据导出装置、电子设备及介质 | |
CN113760924A (zh) | 一种分布式事务的处理方法和装置 | |
CN112182003A (zh) | 一种数据同步方法和装置 | |
CN114979308B (zh) | 一种消息处理的方法和装置 | |
CN116506452B (zh) | 多云数据存储方法、装置、设备及存储介质 | |
CN111782352A (zh) | 一种业务调度方法和装置 | |
US20220067607A1 (en) | Cloud resources allocation system | |
CN115328674A (zh) | 一种数据写入的方法、装置和系统 | |
CN114995764A (zh) | 一种基于流式计算的数据存储的方法和装置 | |
CN116627636A (zh) | 平衡资源的方法、装置、设备和计算机可读介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |