CN107465726A - 资源调度方法及装置 - Google Patents
资源调度方法及装置 Download PDFInfo
- Publication number
- CN107465726A CN107465726A CN201710596168.7A CN201710596168A CN107465726A CN 107465726 A CN107465726 A CN 107465726A CN 201710596168 A CN201710596168 A CN 201710596168A CN 107465726 A CN107465726 A CN 107465726A
- Authority
- CN
- China
- Prior art keywords
- resource
- scheduling
- module
- result
- service request
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/12—Payment architectures specially adapted for electronic shopping systems
- G06Q20/123—Shopping for digital content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/22—Payment schemes or models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Finance (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种资源调度方法及装置。其中,该方法包括:接收业务请求,其中,业务请求用于请求对第一资源进行目标调度操作以获取第二资源,第一资源是登录客户端的帐号所具有的资源;调用与业务请求对应的资源调度接口,其中,资源调度接口由资源调度模块提供,资源调度模块用于根据业务请求对第一资源进行目标调度操作;接收资源调度接口返回的资源调度结果指示信息,其中,资源调度结果指示信息用于指示对第一资源进行的目标调度操作的操作结果;在资源调度结果指示信息用于指示对第一资源进行的目标调度操作成功的情况下,向客户端发放第二资源。本发明解决了现有技术中资源调度效率低的技术问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种资源调度方法及装置。
背景技术
随着网络技术的发展,人们的生产生活越来越依赖网络,人们将各种各样的资源投入到网络中,在网络中对资源进行调度,这其中就包括用户在网络中的代币资源。比如:道具收费模式的网络游戏中的代币,在游戏过程中用户可以使用代币购买道具、换取资源等等,在代币的使用过程中,会进行代币支付的业务。为了方便对代币的管理和监控,往往游戏内的代币都集中在支付系统进行管理,而不是随帐号或者角色数据进行存储。当游戏在处理需要支付的业务时,业务通过游戏服务器来访问支付平台的支付接口进行扣费,并在扣费成功之后进行后续的发货等处理。这往往是一个复杂的异步过程,需要很小心地设计此业务的逻辑过程。而这往往也很容易带来各种漏洞(BUG),从而发生代币或者道具被刷的BUG,从而导致资源的调度效率较低。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种资源调度方法及装置,以至少解决现有技术中资源调度效率低的技术问题。
根据本发明实施例的一个方面,提供了一种资源调度方法,包括:接收业务请求,其中,所述业务请求用于请求对第一资源进行目标调度操作以获取第二资源,所述第一资源是登录客户端的帐号所具有的资源;调用与所述业务请求对应的资源调度接口,其中,所述资源调度接口由资源调度模块提供,所述资源调度模块用于根据所述业务请求对所述第一资源进行所述目标调度操作;接收所述资源调度接口返回的资源调度结果指示信息,其中,所述资源调度结果指示信息用于指示对所述第一资源进行的所述目标调度操作的操作结果;在所述资源调度结果指示信息用于指示对所述第一资源进行的所述目标调度操作成功的情况下,向所述客户端发放所述第二资源。
根据本发明实施例的另一方面,还提供了一种资源调度装置,包括:第一接收模块,用于接收业务请求,其中,所述业务请求用于请求对第一资源进行目标调度操作以获取第二资源,所述第一资源是登录客户端的帐号所具有的资源;调用模块,用于调用与所述业务请求对应的资源调度接口,其中,所述资源调度接口由资源调度模块提供,所述资源调度模块用于根据所述业务请求对所述第一资源进行所述目标调度操作;第二接收模块,用于接收所述资源调度接口返回的资源调度结果指示信息,其中,所述资源调度结果指示信息用于指示对所述第一资源进行的所述目标调度操作的操作结果;发放模块,用于在所述资源调度结果指示信息用于指示对所述第一资源进行的所述目标调度操作成功的情况下,向所述客户端发放所述第二资源。
根据本发明实施例的另一方面,还提供了一种资源调度装置,包括:业务流程模块和资源调度模块,其中,所述业务流程模块,用于接收业务请求,其中,所述业务请求用于请求对第一资源进行目标调度操作以获取第二资源,所述第一资源是登录客户端的帐号所具有的资源;调用与所述业务请求对应的资源调度接口,其中,所述资源调度接口由所述资源调度模块提供;所述资源调度模块,用于根据所述业务请求对所述第一资源进行所述目标调度操作;所述业务流程模块,还用于接收所述资源调度接口返回的资源调度结果指示信息,其中,所述资源调度结果指示信息用于指示对所述第一资源进行的所述目标调度操作的操作结果;在所述资源调度结果指示信息用于指示对所述第一资源进行的所述目标调度操作成功的情况下,向所述客户端发放所述第二资源。
在本发明实施例中,接收业务请求,其中,业务请求用于请求对第一资源进行目标调度操作以获取第二资源,第一资源是登录客户端的帐号所具有的资源;调用与业务请求对应的资源调度接口,其中,资源调度接口由资源调度模块提供,资源调度模块用于根据业务请求对第一资源进行目标调度操作;接收资源调度接口返回的资源调度结果指示信息,其中,资源调度结果指示信息用于指示对第一资源进行的目标调度操作的操作结果;在资源调度结果指示信息用于指示对第一资源进行的目标调度操作成功的情况下,向客户端发放第二资源。也就是说,对于用于兑换第二资源的第一资源进行调度时,将根据业务请求对第一资源进行目标调度操作的功能封装在资源调度模块中,通过调用资源调度模块提供的资源调度接口来实现对于第一资源的调度过程,业务流程只需将业务请求指示给调度模块,通过调度模块对调度结果的反馈对第二资源进行操作,从而提高了资源的调度效率,进而克服现有技术中资源调度效率低的问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的资源调度方法的应用环境示意图;
图2是根据本发明实施例的一种可选的资源调度方法的示意图;
图3是根据本发明可选示例的一种可选的资源调度方法的示意图;
图4是根据本发明实施例的一种可选的资源调度装置的示意图;
图5是根据本发明实施例的另一种可选的资源调度装置的示意图;
图6是根据本发明实施例的一种可选的资源调度方法的应用场景示意图;
图7是根据本发明实施例的一种可选的资源调度方法的流程编码示意图;以及
图8是根据本发明实施例的一种可选的资源调度设备的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
在本发明实施例中,提供了一种上述资源调度方法的实施例。作为一种可选的实施方式,该资源调度方法可以但不限于应用于如图1所示的应用环境中,客户端102通过网络106与服务器104连接,客户端102用于通过网络106向服务器104发送业务请求;服务器104,用于接收业务请求,其中,业务请求用于请求对第一资源进行目标调度操作,第一资源是登录客户端的帐号所具有的资源,第一资源用于兑换第二资源;调用与业务请求对应的资源调度接口,其中,资源调度接口由资源调度模块提供,资源调度模块用于根据业务请求对第一资源进行目标调度操作;接收资源调度接口返回的资源调度结果指示信息,其中,资源调度结果指示信息用于指示对第一资源进行的目标调度操作的操作结果;在资源调度结果指示信息用于指示对第一资源进行的目标调度操作成功的情况下,向客户端102发放第二资源。客户端102还用于接收服务器104发放的第二资源。
在本实施例中,服务器104对于用于兑换第二资源的第一资源进行调度时,将根据业务请求对第一资源进行目标调度操作的功能封装在资源调度模块中,通过调用资源调度模块提供的资源调度接口来实现对于第一资源的调度过程,业务流程只需将业务请求指示给调度模块,通过调度模块对调度结果的反馈对第二资源进行操作,从而提高了资源的调度效率,进而克服现有技术中资源调度效率低的问题。
可选地,在本实施例中,上述客户端可以包括但不限于以下至少之一:手机、平板电脑、笔记本电脑、台式PC机、数字电视、智能穿戴设备及其他进行区域共享的硬件设备。上述网络可以包括但不限于以下至少之一:广域网、城域网、局域网。上述只是一种示例,本实施例对此不做任何限定。
根据本发明实施例,提供了一种资源调度方法,如图2所示,该方法包括:
S202,接收业务请求,其中,业务请求用于请求对第一资源进行目标调度操作以获取第二资源,第一资源是登录客户端的帐号所具有的资源;
S204,调用与业务请求对应的资源调度接口,其中,资源调度接口由资源调度模块提供,资源调度模块用于根据业务请求对第一资源进行目标调度操作;
S206,接收资源调度接口返回的资源调度结果指示信息,其中,资源调度结果指示信息用于指示对第一资源进行的目标调度操作的操作结果;
S208,在资源调度结果指示信息用于指示对第一资源进行的目标调度操作成功的情况下,向客户端发放第二资源。
可选地,在本实施例中,上述资源调度方法可以但不限于应用于服务器对客户端请求的业务对应的资源进行调度的场景。其中,上述软件的客户端可以但不限于为各种类型的软件,例如,在线教育软件、金融交易软件、即时通讯软件、社区空间软件、游戏软件等。具体的,可以但不限于应用于在上述游戏软件中服务器对客户端请求的游戏代币扣除业务对应的游戏代币资源进行调度的场景中,或还可以但不限于应用于在上述即时通信软件服务器对客户端请求的代币支付业务对应的代币资源进行调度的场景中,以提高资源的调度效率。上述仅是一种示例,本实施例中对此不做任何限定。
可选地,在本实施例中,上述资源调度的过程可以是一个异步的资源调度过程,首先接收来自客户端的业务请求,调用与该业务请求对应的资源调度接口,由资源调度模块对第一资源进行目标调度操作,再根据资源调度操作的操作结果由资源调度模块重新封装业务请求,接收重新封装的业务请求重新调用与该重新封装的业务请求对应的资源调度接口,此时,资源调度模块中已经存储了该业务请求的调度结果,从资源调度接口获取该调度结果,根据该调度结果对第二资源的发放进行处理。
可选地,在本实施例中,第一资源是登录客户端的帐号所具有的资源。例如:第一资源可以但不限于为登录游戏客户端的游戏帐号所具有的游戏代币资源,或者,第一资源可以但不限于为登录即时通信客户端的帐号所具有的代币资源,或者,第一资源还可以但不限于为客户端中的道具(例如:金币、钻石、道具碎片)等等。
可选地,在本实施例中,上述目标调度操作可以但不限于指对第一资源进行的调度操作。例如:上述目标调度操作可以但不限于包括代币支付操作、道具消耗操作等等。
可选地,在本实施例中,上述第二资源可以但不限于为第一资源可以兑换的资源。例如:第二资源可以但不限于为客户端中的道具。比如:在游戏客户端中,第二资源可以是装备、药水、游戏角色、角色生命、角色皮肤等等。
在一个可选的实施方式中,上述业务请求可以用于请求对游戏代币进行支付操作以使游戏中的角色复活。还可以用于请求对游戏中的代币进行支付操作以换取游戏装备等等。
可选地,在本实施例中,业务请求对应了资源调度模块中的资源调度接口,也就是说,对于不同的业务流程对应了不同的资源调度接口,可以设置业务分发模块对接收到的业务请求进行检测并将业务请求分配到对应的资源调度接口上。
可见,通过上述步骤,对于用于兑换第二资源的第一资源进行调度时,将根据业务请求对第一资源进行目标调度操作的功能封装在资源调度模块中,通过调用资源调度模块提供的资源调度接口来实现对于第一资源的调度过程,业务流程只需将业务请求指示给调度模块,通过调度模块对调度结果的反馈对第二资源进行操作,从而提高了资源的调度效率,进而克服现有技术中资源调度效率低的问题。
作为一种可选的方案,在接收资源调度接口返回的资源调度结果指示信息之后,还包括:
S1,在资源调度结果指示信息用于指示对第一资源进行的目标调度操作失败的情况下,向客户端发送第一指示信息,其中,第一指示消息用于指示对第一资源进行的目标调度操作失败。
可选地,在本实施例中,如果资源调度结果指示信息指示了对第一资源进行的目标调度操作失败,那么可以向客户端通知该失败消息,再由客户端决定是否重新进行业务请求或是撤回业务请求。使得客户端可以得到对于业务请求的反馈,从而对进一步的操作做出判断,不会出现对于客户端的业务请求无响应的状况。
作为一种可选的方案,在向客户端发放第二资源失败的情况下,还包括以下至少之一:
S1,向客户端发送第二指示信息,其中,第二指示消息用于指示向客户端发放第二资源失败;
S2,向资源调度模块发送第三指示信息,其中,第三指示消息用于指示向客户端发放第二资源失败。
可选地,在本实施例中,如果向客户端发放第二资源失败了,可以对客户端和资源调度模块分别通知该失败消息,从而使得客户端能够在发放第二资源失败的情况下监控到执行了目标调度操作的第一资源是否回退,也能够使得资源调度模块知晓第二资源发放失败从而对第一资源之行的目标操作进行回退。保证了第一资源的安全性。
可选地,在本实施例中,在向资源调度模块发送第三指示信息之后,可以通过资源调度模块回退对第一资源执行的目标调度操作。
在一个可选的实施方式中,以游戏场景为例,接收到客户端发送的业务请求为使用M个代币购买装备N,调用该业务对应的资源调度接口,由资源调度模块执行对该客户端对应的帐号扣除M个代币的操作,操作成功后返回了用于指示该操作成功的资源调度结果指示信息,根据该资源调度结果指示信息向该客户端发送装备N,但是发放失败了,那么,可以分别向客户端和资源调度模块发送该失败消息,并由资源调度模块将扣除的M个代币回退给该客户端对应的帐号。
作为一种可选的方案,调用与业务请求对应的资源调度接口包括:
S1,检查帐号是否满足对第一资源进行目标调度操作需具备的条件;
S2,在帐号满足对第一资源进行目标调度操作需具备的条件的情况下,调用与业务请求对应的资源调度接口。
可选地,在本实施例中,在调用资源调度接口之前,可以对发起业务请求的帐号进行鉴权,从而保证第一资源的安全。
作为一种可选的方案,在调用与业务请求对应的资源调度接口之后,还包括:
S1,通过资源调度模块存储业务请求并根据业务请求对第一资源进行目标调度操作,得到操作结果;
S2,通过资源调度模块根据操作结果通过资源调度接口返回资源调度结果指示信息。
可选地,在本实施例中,对第一资源进行目标调度操作的过程可以由资源调度平台来执行,资源调度模块通过与资源调度平台进行交互来获取资源的调度结果,并将获取到的资源调度结果存储在资源调度模块的缓存区中。例如:通过资源调度模块通过与目标调度操作对应的目标调度接口向资源调度平台发送请求信息,其中,请求信息用于请求资源调度平台执行目标调度操作,通过资源调度模块接收资源调度平台通过目标调度接口返回的资源调度结果,其中,资源调度结果用于指示资源调度平台执行目标调度操作的结果;通过资源调度模块存储资源调度结果,作为操作结果。
可选地,在本实施例中,在请求资源调度平台处理资源调度过程之前,可以检测资源调度模块中是否已经存储了本次目标调度操作对应的操作结果,如果是,则直接读取存储的操作结果,如果否,则请求资源调度平台进行处理。例如:通过资源调度模块检测是否存储了操作结果,在检测到未存储操作结果的情况下,通过资源调度模块通过与目标调度操作对应的目标调度接口向资源调度平台发送请求信息。在检测到存储了操作结果的情况下,通过资源调度模块读取操作结果。
可选地,在本实施例中,资源调度模块可以在收到资源调度平台返回的资源调度结果之后从缓存中读取该资源调度结果对应的业务请求,并将其返回给业务流程,由业务流程从资源调度接口获取资源调度结果从而根据调度结果进行后续的处理,以实现异步的资源调度和资源发放的过程。例如:在通过资源调度模块接收资源调度平台通过目标调度接口返回的资源调度结果之后,可以通过资源调度模块获取存储的业务请求并返回业务请求。
可选地,在本实施例中,在资源调度平台返回超时的情况下,超时后业务第二次执行时,调用支付接口即会收到超时的错误提示。当已超时后资源调度结果从资源调度平台返回后。由于找不到缓存中的原业务请求,则会正常退款。业务流程无须参与处理。
可选地,在本实施例中,当资源调度平台返回调度结果时帐号已不在线,此时业务将无法正常进行。资源调度模块会自动完成退款操作。
可选地,在本实施例中,当第二次业务执行时没有调用资源调度接口时或者调用了不同参数的资源调度接口。此时资源调度模块会返回出错的提示,并自动退款。这样可以避免出现资源调度业务前后矛盾的情况。
可选地,在本实施例中,可以实现对资源调度业务的串行控制,当同一个帐号同时发起多个异步资源调度时(上一个资源调度结果返回前又进行另一次资源调度),这种情况可能会带来一定的风险。所以资源调度模块一旦检测到这种情况,则会返回错误提示,并中止流程。
可选地,在本实施例中,资源调度接口除了可传入代币外,还允许传入多种其它的资源,和代币进行同时扣除。如果代币产生退款的行为,则此部分资源也会一并退还帐号本身。这进一步降低了业务编写的复杂度,降低出错的可能。
可选地,在本实施例中,当业务第一次触发支付请求后,相关的支付参数可以被记录并等待云端支付的结果。当云端支持结果返回后,触发第二次业务流程的执行过程。第二次业务流程的执行过程是在系统的监督下执行的。所谓监督执行,可以指以下两个方面:1)第二次业务流程的执行是否再次触发支持请求。2)再次触发支持请求时是否传入了相同的支付参数。对于正常的第二次业务执行过程。以上两项必需是成立的。否则,可认为当前环境或者条件已经发生了变化。
例如:1)对于购买道具的请求。第一次正常进行了支付请求,但当请求回来时(因为是异步,中间发生了其它操作),此物品已处于无货状态,或者此帐号的道具栏已满。此时业务第二次触发执行时的前置检查会失败,支付接口不会被调用。2)对于购买道具的请求。第一次正常进行了支付请求,但当请求回来时,道具的价格已经发生了变化,此时支付接口再次被调用,但传入的参数和第一次会有所不同。
当检测到以上两种情况时。都可能导致业务失败,进而触发退款。如果是情况(2),则第二次执行时的支付请求会立刻失败。
可选地,在一个可选示例中,当第一次业务执行时触发了支付请求。而支付成功后的第二业务执行过程并没有触发支付,但并非前置检查流程失败。而是第二次执行时支付已无必要(条件发生变化,如原付费道具此时已经是免费的了)。此时业务会执行成功并完成发货流程。此种情况下,即使第二次业务执行成功,如果是没有调用支付接口,则认为支付是不需要的。此时也会发生退款。因为可以认为业务的第二次执行才是完整的,以第二次执行的业务流程为准。
在一个可选示例中提供了一种资源调度方法,具体结合图3对资源调度过程进行说明。在本实施例中,以代币支付业务为例,以下支付模块相当于上述资源调度模块。首先,代币支付业务开始的第一步为对支付业务进行前置条件的检查,这个步骤可以要求不能对帐号进行修改性的操作,因为此步骤在代币支付完成后会重新执行一次,这里如果有修改能会执行两遍支付操作。如果有不可避免的修改操作,则可以通过支付模块的API来判断是处于支付前检查还是正在执行支付后检查。如果这一步骤执行失败(检查不通过),则返回失败。如果是支付后的检查失败,则支付模块会感知到业务失败,并对代币进行回退操作。业务编写者无需关心回退的过程,由支付模块自动完成。如果检查通过,则继续执行下面的步骤。
业务检查通过后就可以调用支付模块的支付接口(相当于上述资源调度接口)进入支付流程了。在支付模块的支付接口中,方案同时封装了多种常见的资源消耗参数。方便在代币支付的同时用于消耗其它的资源。如游戏内金币,体力等。在需要回退资源的情况下,通过支付接口扣除的其它资源也会同时返还给帐号。业务编写者无需关心资源回退的处理过程。
检查支付API的返回值来执行不同的操作。如果支付失败,这里需要执行一个失败的处理过程,如向客户端返回相应的错误提示等。同时业务流程结束并向支付模块返回错误代码。
如果支付成功,则执行业务的发货流程。发货流程可由业务流程自行保证单事务性。
如果发货失败,则可以做一些清理回复的工作,如给客户端回复错误提示。同时业务流程结束并向支付模块返回错误代码。同样这里业务流程也不用担心代币和资源的回退,支付模块会代为处理。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
根据本发明实施例,还提供了一种用于实施上述资源调度方法的资源调度装置,如图4所示,该装置包括:
1)第一接收模块42,用于接收业务请求,其中,业务请求用于请求对第一资源进行目标调度操作以获取第二资源,第一资源是登录客户端的帐号所具有的资源;
2)调用模块44,用于调用与业务请求对应的资源调度接口,其中,资源调度接口由资源调度模块提供,资源调度模块用于根据业务请求对第一资源进行目标调度操作;
3)第二接收模块46,用于接收资源调度接口返回的资源调度结果指示信息,其中,资源调度结果指示信息用于指示对第一资源进行的目标调度操作的操作结果;
4)发放模块48,用于在资源调度结果指示信息用于指示对第一资源进行的目标调度操作成功的情况下,向客户端发放第二资源。
可选地,在本实施例中,上述资源调度装置可以但不限于应用于服务器对客户端请求的业务对应的资源进行调度的场景。其中,上述软件的客户端可以但不限于为各种类型的软件,例如,在线教育软件、金融交易软件、即时通讯软件、社区空间软件、游戏软件等。具体的,可以但不限于应用于在上述游戏软件中服务器对客户端请求的游戏代币扣除业务对应的游戏代币资源进行调度的场景中,或还可以但不限于应用于在上述即时通信软件服务器对客户端请求的代币支付业务对应的代币资源进行调度的场景中,以提高资源的调度效率。上述仅是一种示例,本实施例中对此不做任何限定。
可选地,在本实施例中,上述资源调度的装置可以执行一个异步的资源调度过程,首先接收来自客户端的业务请求,调用与该业务请求对应的资源调度接口,由资源调度模块对第一资源进行目标调度操作,再根据资源调度操作的操作结果由资源调度模块重新封装业务请求,接收重新封装的业务请求重新调用与该重新封装的业务请求对应的资源调度接口,此时,资源调度模块中已经存储了该业务请求的调度结果,从资源调度接口获取该调度结果,根据该调度结果对第二资源的发放进行处理。
可选地,在本实施例中,第一资源是登录客户端的帐号所具有的资源。例如:第一资源可以但不限于为登录游戏客户端的游戏帐号所具有的游戏代币资源,或者,第一资源可以但不限于为登录即时通信客户端的帐号所具有的代币资源,或者,第一资源还可以但不限于为客户端中的道具(例如:金币、钻石、道具碎片)等等。
可选地,在本实施例中,上述目标调度操作可以但不限于指对第一资源进行的调度操作。例如:上述目标调度操作可以但不限于包括代币支付操作、道具消耗操作等等。
可选地,在本实施例中,上述第二资源可以但不限于为第一资源可以兑换的资源。例如:第二资源可以但不限于为客户端中的道具。比如:在游戏客户端中,第二资源可以是装备、药水、游戏角色、角色生命、角色皮肤等等。
在一个可选的实施方式中,上述业务请求可以用于请求对游戏代币进行支付操作以使游戏中的角色复活。还可以用于请求对游戏中的代币进行支付操作以换取游戏装备等等。
可选地,在本实施例中,业务请求对应了资源调度模块中的资源调度接口,也就是说,对于不同的业务流程对应了不同的资源调度接口,可以设置业务分发模块对接收到的业务请求进行检测并将业务请求分配到对应的资源调度接口上。
可见,通过上述装置,对于用于兑换第二资源的第一资源进行调度时,将根据业务请求对第一资源进行目标调度操作的功能封装在资源调度模块中,通过调用资源调度模块提供的资源调度接口来实现对于第一资源的调度过程,业务流程只需将业务请求指示给调度模块,通过调度模块对调度结果的反馈对第二资源进行操作,从而提高了资源的调度效率,进而克服现有技术中资源调度效率低的问题。
作为一种可选的方案,上述装置还包括:
1)第一发送模块,用于在资源调度结果指示信息用于指示对第一资源进行的目标调度操作失败的情况下,向客户端发送第一指示信息,其中,第一指示消息用于指示对第一资源进行的目标调度操作失败。
可选地,在本实施例中,如果资源调度结果指示信息指示了对第一资源进行的目标调度操作失败,那么可以向客户端通知该失败消息,再由客户端决定是否重新进行业务请求或是撤回业务请求。使得客户端可以得到对于业务请求的反馈,从而对进一步的操作做出判断,不会出现对于客户端的业务请求无响应的状况。
作为一种可选的方案,上述装置还包括以下至少之一:
1)第二发送模块,用于向客户端发送第二指示信息,其中,第二指示消息用于指示向客户端发放第二资源失败;
2)第三发送模块,用于向资源调度模块发送第三指示信息,其中,第三指示消息用于指示向客户端发放第二资源失败。
可选地,在本实施例中,如果向客户端发放第二资源失败了,可以对客户端和资源调度模块分别通知该失败消息,从而使得客户端能够在发放第二资源失败的情况下监控到执行了目标调度操作的第一资源是否回退,也能够使得资源调度模块知晓第二资源发放失败从而对第一资源之行的目标操作进行回退。保证了第一资源的安全性。
可选地,在本实施例中,上述装置还包括:回退模块,用于通过资源调度模块回退对第一资源执行的目标调度操作。
在一个可选的实施方式中,以游戏场景为例,接收到客户端发送的业务请求为使用M个代币购买装备N,调用该业务对应的资源调度接口,由资源调度模块执行对该客户端对应的帐号扣除M个代币的操作,操作成功后返回了用于指示该操作成功的资源调度结果指示信息,根据该资源调度结果指示信息向该客户端发送装备N,但是发放失败了,那么,可以分别向客户端和资源调度模块发送该失败消息,并由资源调度模块将扣除的M个代币回退给该客户端对应的帐号。
作为一种可选的方案,上述调用模块包括:
1)检查单元,用于检查帐号是否满足对第一资源进行目标调度操作需具备的条件;
2)调用单元,用于在帐号满足对第一资源进行目标调度操作需具备的条件的情况下,调用与业务请求对应的资源调度接口。
可选地,在本实施例中,在调用资源调度接口之前,可以对发起业务请求的帐号进行鉴权,从而保证第一资源的安全。
作为一种可选的方案,上述装置还包括:
1)第一处理模块,用于通过资源调度模块存储业务请求并根据业务请求对第一资源进行目标调度操作,得到操作结果;
2)返回模块,用于通过资源调度模块根据操作结果通过资源调度接口返回资源调度结果指示信息。
可选地,在本实施例中,上述第一处理模块用于:通过资源调度模块通过与目标调度操作对应的目标调度接口向资源调度平台发送请求信息,其中,请求信息用于请求资源调度平台执行目标调度操作;通过资源调度模块接收资源调度平台通过目标调度接口返回的资源调度结果,其中,资源调度结果用于指示资源调度平台执行目标调度操作的结果;通过资源调度模块存储资源调度结果,作为操作结果。
可选地,在本实施例中,对第一资源进行目标调度操作的过程可以由资源调度平台来执行,资源调度模块通过与资源调度平台进行交互来获取资源的调度结果,并将获取到的资源调度结果存储在资源调度模块的缓存区中。
可选地,在本实施例中,上述第一处理模块还用于:通过资源调度模块检测是否存储了操作结果;在检测到未存储操作结果的情况下,通过资源调度模块通过与目标调度操作对应的目标调度接口向资源调度平台发送请求信息。
可选地,在本实施例中,上述装置还包括:读取模块,用于在检测到存储了操作结果的情况下,通过资源调度模块读取操作结果。
可选地,在本实施例中,在请求资源调度平台处理资源调度过程之前,可以检测资源调度模块中是否已经存储了本次目标调度操作对应的操作结果,如果是,则直接读取存储的操作结果,如果否,则请求资源调度平台进行处理。
可选地,在本实施例中,上述装置还包括:第二处理模块,用于通过资源调度模块获取存储的业务请求并返回业务请求。
可选地,在本实施例中,资源调度模块可以在收到资源调度平台返回的资源调度结果之后从缓存中读取该资源调度结果对应的业务请求,并将其返回给业务流程,由业务流程从资源调度接口获取资源调度结果从而根据调度结果进行后续的处理,以实现异步的资源调度和资源发放的过程。
可选地,在本实施例中,在资源调度平台返回超时的情况下,超时后业务第二次执行时,调用支付接口即会收到超时的错误提示。当已超时后资源调度结果从资源调度平台返回后。由于找不到缓存中的原业务请求,则会正常退款。业务流程无须参与处理。
可选地,在本实施例中,当资源调度平台返回调度结果时帐号已不在线,此时业务将无法正常进行。资源调度模块会自动完成退款操作。
可选地,在本实施例中,当第二次业务执行时没有调用资源调度接口时或者调用了不同参数的资源调度接口。此时资源调度模块会返回出错的提示,并自动退款。这样可以避免出现资源调度业务前后矛盾的情况。
可选地,在本实施例中,可以实现对资源调度业务的串行控制,当同一个帐号同时发起多个异步资源调度时(上一个资源调度结果返回前又进行另一次资源调度),这种情况可能会带来一定的风险。所以资源调度模块一旦检测到这种情况,则会返回错误提示,并中止流程。
可选地,在本实施例中,资源调度接口除了可传入代币外,还允许传入多种其它的资源,和代币进行同时扣除。如果代币产生退款的行为,则此部分资源也会一并退还帐号本身。这进一步降低了业务编写的复杂度,降低出错的可能。
可选地,在本实施例中,当业务第一次触发支付请求后,相关的支付参数可以被记录并等待云端支付的结果。当云端支持结果返回后,触发第二次业务流程的执行过程。第二次业务流程的执行过程是在系统的监督下执行的。所谓监督执行,可以指以下两个方面:1)第二次业务流程的执行是否再次触发支持请求。2)再次触发支持请求时是否传入了相同的支付参数。对于正常的第二次业务执行过程。以上两项必需是成立的。否则,可认为当前环境或者条件已经发生了变化。
例如:1)对于购买道具的请求。第一次正常进行了支付请求,但当请求回来时(因为是异步,中间发生了其它操作),此物品已处于无货状态,或者此帐号的道具栏已满。此时业务第二次触发执行时的前置检查会失败,支付接口不会被调用。2)对于购买道具的请求。第一次正常进行了支付请求,但当请求回来时,道具的价格已经发生了变化,此时支付接口再次被调用,但传入的参数和第一次会有所不同。
当检测到以上两种情况时。都可能导致业务失败,进而触发退款。如果是情况(2),则第二次执行时的支付请求会立刻失败。
可选地,在一个可选示例中,当第一次业务执行时触发了支付请求。而支付成功后的第二业务执行过程并没有触发支付,但并非前置检查流程失败。而是第二次执行时支付已无必要(条件发生变化,如原付费道具此时已经是免费的了)。此时业务会执行成功并完成发货流程。此种情况下,即使第二次业务执行成功,如果是没有调用支付接口,则认为支付是不需要的。此时也会发生退款。因为可以认为业务的第二次执行才是完整的,以第二次执行的业务流程为准。
实施例3
根据本发明实施例,还提供了一种用于实施上述资源调度方法的资源调度装置,如图5所示,该装置包括:业务流程模块52和资源调度模块54,其中,
1)业务流程模块52,用于接收业务请求,其中,业务请求用于请求对第一资源进行目标调度操作以获取第二资源,第一资源是登录客户端的帐号所具有的资源;调用与业务请求对应的资源调度接口,其中,资源调度接口由资源调度模块提供;
2)资源调度模块54,用于根据业务请求对第一资源进行目标调度操作;
3)业务流程模块52,还用于接收资源调度接口返回的资源调度结果指示信息,其中,资源调度结果指示信息用于指示对第一资源进行的目标调度操作的操作结果;在资源调度结果指示信息用于指示对第一资源进行的目标调度操作成功的情况下,向客户端发放第二资源。
可选地,在本实施例中,上述资源调度装置可以但不限于应用于服务器对客户端请求的业务对应的资源进行调度的场景。其中,上述软件的客户端可以但不限于为各种类型的软件,例如,在线教育软件、金融交易软件、即时通讯软件、社区空间软件、游戏软件等。具体的,可以但不限于应用于在上述游戏软件中服务器对客户端请求的游戏代币扣除业务对应的游戏代币资源进行调度的场景中,或还可以但不限于应用于在上述即时通信软件服务器对客户端请求的代币支付业务对应的代币资源进行调度的场景中,以提高资源的调度效率。上述仅是一种示例,本实施例中对此不做任何限定。
可选地,在本实施例中,上述资源调度的装置可以执行一个异步的资源调度过程,首先接收来自客户端的业务请求,调用与该业务请求对应的资源调度接口,由资源调度模块对第一资源进行目标调度操作,再根据资源调度操作的操作结果由资源调度模块重新封装业务请求,接收重新封装的业务请求重新调用与该重新封装的业务请求对应的资源调度接口,此时,资源调度模块中已经存储了该业务请求的调度结果,从资源调度接口获取该调度结果,根据该调度结果对第二资源的发放进行处理。
可选地,在本实施例中,第一资源是登录客户端的帐号所具有的资源。例如:第一资源可以但不限于为登录游戏客户端的游戏帐号所具有的游戏代币资源,或者,第一资源可以但不限于为登录即时通信客户端的帐号所具有的代币资源,或者,第一资源还可以但不限于为客户端中的道具(例如:金币、钻石、道具碎片)等等。
可选地,在本实施例中,上述目标调度操作可以但不限于指对第一资源进行的调度操作。例如:上述目标调度操作可以但不限于包括代币支付操作、道具消耗操作等等。
可选地,在本实施例中,上述第二资源可以但不限于为第一资源可以兑换的资源。例如:第二资源可以但不限于为客户端中的道具。比如:在游戏客户端中,第二资源可以是装备、药水、游戏角色、角色生命、角色皮肤等等。
在一个可选的实施方式中,上述业务请求可以用于请求对游戏代币进行支付操作以使游戏中的角色复活。还可以用于请求对游戏中的代币进行支付操作以换取游戏装备等等。
可选地,在本实施例中,业务请求对应了资源调度模块中的资源调度接口,也就是说,对于不同的业务流程对应了不同的资源调度接口,可以设置业务分发模块对接收到的业务请求进行检测并将业务请求分配到对应的资源调度接口上。
可见,通过上述装置,对于用于兑换第二资源的第一资源进行调度时,将根据业务请求对第一资源进行目标调度操作的功能封装在资源调度模块中,通过调用资源调度模块提供的资源调度接口来实现对于第一资源的调度过程,业务流程只需将业务请求指示给调度模块,通过调度模块对调度结果的反馈对第二资源进行操作,从而提高了资源的调度效率,进而克服现有技术中资源调度效率低的问题。
作为一种可选的方案,上述业务流程模块还用于:在资源调度结果指示信息用于指示对第一资源进行的目标调度操作失败的情况下,向客户端发送第一指示信息,其中,第一指示消息用于指示对第一资源进行的目标调度操作失败。
可选地,在本实施例中,如果资源调度结果指示信息指示了对第一资源进行的目标调度操作失败,那么可以向客户端通知该失败消息,再由客户端决定是否重新进行业务请求或是撤回业务请求。使得客户端可以得到对于业务请求的反馈,从而对进一步的操作做出判断,不会出现对于客户端的业务请求无响应的状况。
作为一种可选的方案,在向客户端发放第二资源失败的情况下,业务流程模块还用于以下至少之一:
1)向客户端发送第二指示信息,其中,第二指示消息用于指示向客户端发放第二资源失败;
2)向资源调度模块发送第三指示信息,其中,第三指示消息用于指示向客户端发放第二资源失败。
可选地,在本实施例中,如果向客户端发放第二资源失败了,可以对客户端和资源调度模块分别通知该失败消息,从而使得客户端能够在发放第二资源失败的情况下监控到执行了目标调度操作的第一资源是否回退,也能够使得资源调度模块知晓第二资源发放失败从而对第一资源之行的目标操作进行回退。保证了第一资源的安全性。
可选地,在本实施例中,资源调度模块还用于:在接收到第三指示信息之后,回退对第一资源执行的目标调度操作。
在一个可选的实施方式中,以游戏场景为例,接收到客户端发送的业务请求为使用M个代币购买装备N,调用该业务对应的资源调度接口,由资源调度模块执行对该客户端对应的帐号扣除M个代币的操作,操作成功后返回了用于指示该操作成功的资源调度结果指示信息,根据该资源调度结果指示信息向该客户端发送装备N,但是发放失败了,那么,可以分别向客户端和资源调度模块发送该失败消息,并由资源调度模块将扣除的M个代币回退给该客户端对应的帐号。
作为一种可选的方案,业务流程模块还用于:检查帐号是否满足对第一资源进行目标调度操作需具备的条件;在帐号满足对第一资源进行目标调度操作需具备的条件的情况下,调用与业务请求对应的资源调度接口。
可选地,在本实施例中,在调用资源调度接口之前,可以对发起业务请求的帐号进行鉴权,从而保证第一资源的安全。
作为一种可选的方案,资源调度模块还用于:存储业务请求并根据业务请求对第一资源进行目标调度操作,得到操作结果;根据操作结果通过资源调度接口返回资源调度结果指示信息。
可选地,在本实施例中,资源调度模块还用于:通过与目标调度操作对应的目标调度接口向资源调度平台发送请求信息,其中,请求信息用于请求资源调度平台执行目标调度操作;接收资源调度平台通过目标调度接口返回的资源调度结果,其中,资源调度结果用于指示资源调度平台执行目标调度操作的结果;存储资源调度结果,作为操作结果。
可选地,在本实施例中,对第一资源进行目标调度操作的过程可以由资源调度平台来执行,资源调度模块通过与资源调度平台进行交互来获取资源的调度结果,并将获取到的资源调度结果存储在资源调度模块的缓存区中。
可选地,在本实施例中,资源调度模块还用于:检测是否存储了操作结果;在检测到未存储操作结果的情况下,通过与目标调度操作对应的目标调度接口向资源调度平台发送请求信息。
可选地,在本实施例中,资源调度模块还用于:在检测到存储了操作结果的情况下,读取操作结果。
可选地,在本实施例中,在请求资源调度平台处理资源调度过程之前,可以检测资源调度模块中是否已经存储了本次目标调度操作对应的操作结果,如果是,则直接读取存储的操作结果,如果否,则请求资源调度平台进行处理。
可选地,在本实施例中,资源调度模块还用于:获取存储的业务请求并返回业务请求。
可选地,在本实施例中,在资源调度平台返回超时的情况下,超时后业务第二次执行时,调用支付接口即会收到超时的错误提示。当已超时后资源调度结果从资源调度平台返回后。由于找不到缓存中的原业务请求,则会正常退款。业务流程无须参与处理。
可选地,在本实施例中,当资源调度平台返回调度结果时帐号已不在线,此时业务将无法正常进行。资源调度模块会自动完成退款操作。
可选地,在本实施例中,当第二次业务执行时没有调用资源调度接口时或者调用了不同参数的资源调度接口。此时资源调度模块会返回出错的提示,并自动退款。这样可以避免出现资源调度业务前后矛盾的情况。
可选地,在本实施例中,可以实现对资源调度业务的串行控制,当同一个帐号同时发起多个异步资源调度时(上一个资源调度结果返回前又进行另一次资源调度),这种情况可能会带来一定的风险。所以资源调度模块一旦检测到这种情况,则会返回错误提示,并中止流程。
可选地,在本实施例中,资源调度接口除了可传入代币外,还允许传入多种其它的资源,和代币进行同时扣除。如果代币产生退款的行为,则此部分资源也会一并退还帐号本身。这进一步降低了业务编写的复杂度,降低出错的可能。
可选地,在本实施例中,当业务第一次触发支付请求后,相关的支付参数可以被记录并等待云端支付的结果。当云端支持结果返回后,触发第二次业务流程的执行过程。第二次业务流程的执行过程是在系统的监督下执行的。所谓监督执行,可以指以下两个方面:1)第二次业务流程的执行是否再次触发支持请求。2)再次触发支持请求时是否传入了相同的支付参数。对于正常的第二次业务执行过程。以上两项必需是成立的。否则,可认为当前环境或者条件已经发生了变化。
例如:1)对于购买道具的请求。第一次正常进行了支付请求,但当请求回来时(因为是异步,中间发生了其它操作),此物品已处于无货状态,或者此帐号的道具栏已满。此时业务第二次触发执行时的前置检查会失败,支付接口不会被调用。2)对于购买道具的请求。第一次正常进行了支付请求,但当请求回来时,道具的价格已经发生了变化,此时支付接口再次被调用,但传入的参数和第一次会有所不同。
当检测到以上两种情况时。都可能导致业务失败,进而触发退款。如果是情况(2),则第二次执行时的支付请求会立刻失败。
可选地,在一个可选示例中,当第一次业务执行时触发了支付请求。而支付成功后的第二业务执行过程并没有触发支付,但并非前置检查流程失败。而是第二次执行时支付已无必要(条件发生变化,如原付费道具此时已经是免费的了)。此时业务会执行成功并完成发货流程。此种情况下,即使第二次业务执行成功,如果是没有调用支付接口,则认为支付是不需要的。此时也会发生退款。因为可以认为业务的第二次执行才是完整的,以第二次执行的业务流程为准。
在一个可选示例中提供了一种资源调度方法,具体结合图3对资源调度过程进行说明。在本实施例中,以代币支付业务为例,以下支付模块相当于上述资源调度模块。首先,代币支付业务开始的第一步为对支付业务进行前置条件的检查,这个步骤可以要求不能对帐号进行修改性的操作,因为此步骤在代币支付完成后会重新执行一次,这里如果有修改能会执行两遍支付操作。如果有不可避免的修改操作,则可以通过支付模块的API来判断是处于支付前检查还是正在执行支付后检查。如果这一步骤执行失败(检查不通过),则返回失败。如果是支付后的检查失败,则支付模块会感知到业务失败,并对代币进行回退操作。业务编写者无需关心回退的过程,由支付模块自动完成。如果检查通过,则继续执行下面的步骤。
业务检查通过后就可以调用支付模块的支付接口(相当于上述资源调度接口)进入支付流程了。在支付模块的支付接口中,方案同时封装了多种常见的资源消耗参数。方便在代币支付的同时用于消耗其它的资源。如游戏内金币,体力等。在需要回退资源的情况下,通过支付接口扣除的其它资源也会同时返还给帐号。业务编写者无需关心资源回退的处理过程。
检查支付API的返回值来执行不同的操作。如果支付失败,这里需要执行一个失败的处理过程,如向客户端返回相应的错误提示等。同时业务流程结束并向支付模块返回错误代码。
如果支付成功,则执行业务的发货流程。发货流程可由业务流程自行保证单事务性。
如果发货失败,则可以做一些清理回复的工作,如给客户端回复错误提示。同时业务流程结束并向支付模块返回错误代码。同样这里业务流程也不用担心代币和资源的回退,支付模块会代为处理。
实施例4
本发明实施例的应用环境可以但不限于参照实施例1中的应用环境,本实施例中对此不再赘述。本发明实施例提供了用于实施上述方法的一种可选的具体应用示例。
作为一种可选的实施例,上述配置对象的更新方法可以但不限于应用于如图6所示的代币支付兑换资源的场景中。实线方框内为代币支付系统模块(相当于上述资源调度模块)的功能封装。其包括一个支付业务的缓存区,代币支付的请求功能,支付返回的处理功能以及各种支付异常的逻辑。一个待支付的业务在本实施例中会有两次执行过程。而执行的步骤会有所区别。
在支付业务的第一次执行中,客户端会发起相应的支付业务流程。当服务器接收到客户端的请求后,通过业务分发模块进入到具体的业务流程执行。当业务的前置检查通过后,业务开始调用支付接口来进行代币支付。支付模块首先会判断是业务的第一次执行还是第二次执行。可以通过缓存区的信息来判断。如果是第一次执行的支付接口调用,则支付模块会触发支付平台的调用过程。支付模块首先会将业务请求写入缓存内,然后再调用支付平台的接口来进行异步支付。业务流程执行到此结束,等待支付结果的返回。
在支付业务的第二次执行中,第二次业务的执行由支付平台的返回消息触发。当支付平台返回支付结果时,可以通过一个预先生成的ID来从缓存内找到触发此次支付的原始业务。此业务从缓冲内读取出来。同时支付模块还将支付结果写入缓存内。等待业务对支付结果进行检查。第二次业务的执行仍然通过业务分发模块找到具体的业务流程。此时业务前置检查部分再次被执行。如果此过程需要区分是第一次执行还是第二次执行,可通过支付模块提供的接口来判断。当业务再次执行到支付接口调用时,此时接口内将检查到此业务是处于支付结果返回状态。则支付接口会立刻返回业务流程此次支付的结果。根据此结果业务流程进一步执行发货流程或者支付失败的处理过程。当所有业务步骤执行完成,此时将返回到支付模块的流程触发函数内。根据业务执行最终的返回,支付模块对支付缓存进行清理。如果有发货失败等情况(根据业务返回值判断),则需要执行相应的退款过程。
至此,整个支付业务的流程执行完成。支付模块已经为支付业务处理了除具体业务逻辑以外的所以支付,退款,以及其它各种异常情况。业务编写者只需要关注业务本身的逻辑即可,从而提高了资源调度的效率。
在本实施例中,面向业务流程的编码者提供了一个支付业务流程标准和接口的封装。按如图7所示的流程编写待支付的业务代码。只需要关注业务本身的条件判断,发货处理等,而异步支付的其它情况,如支付失败,超时,发货失败退代币等本方案的接口已经代为处理。
本实施例提供的资源调度方法,通过规范流程,创新的异步转同步的二次业务分发模式,对支付流程的封装,异常处理的封装等技术手段来简化异步支付业务流程的设计和编写。并针对云端代币支付的异步流程提出了解决方案。本实施例提供的资源调度方法也可以应用到其它的异步系统,来减少异步系统的复杂度,提高资源调度的效率。
实施例4
根据本发明实施例,还提供了一种用于实施上述资源调度方法的资源调度设备,如图8所示,该设备包括:
1)通讯接口802,设置为接收业务请求,其中,业务请求用于请求对第一资源进行目标调度操作以获取第二资源,第一资源是登录客户端的帐号所具有的资源;在资源调度结果指示信息用于指示对第一资源进行的目标调度操作成功的情况下,向客户端发放第二资源;
2)处理器804,与通讯接口802连接,设置为调用与业务请求对应的资源调度接口,其中,资源调度接口由资源调度模块提供,通过资源调度模块根据业务请求对第一资源进行目标调度操作;接收资源调度接口返回的资源调度结果指示信息,其中,资源调度结果指示信息用于指示对第一资源进行的目标调度操作的操作结果。
3)存储器806,与通讯接口802及处理器804连接,设置为存储业务请求。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
实施例5
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以位于网络中的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,接收业务请求,其中,业务请求用于请求对第一资源进行目标调度操作以获取第二资源,第一资源是登录客户端的帐号所具有的资源;
S2,调用与业务请求对应的资源调度接口,其中,资源调度接口由资源调度模块提供,资源调度模块用于根据业务请求对第一资源进行目标调度操作;
S3,接收资源调度接口返回的资源调度结果指示信息,其中,资源调度结果指示信息用于指示对第一资源进行的目标调度操作的操作结果;
S4,在资源调度结果指示信息用于指示对第一资源进行的目标调度操作成功的情况下,向客户端发放第二资源。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (15)
1.一种资源调度方法,其特征在于,包括:
接收业务请求,其中,所述业务请求用于请求对第一资源进行目标调度操作以获取第二资源,所述第一资源是登录客户端的帐号所具有的资源;
调用与所述业务请求对应的资源调度接口,其中,所述资源调度接口由资源调度模块提供,所述资源调度模块用于根据所述业务请求对所述第一资源进行所述目标调度操作;
接收所述资源调度接口返回的资源调度结果指示信息,其中,所述资源调度结果指示信息用于指示对所述第一资源进行的所述目标调度操作的操作结果;
在所述资源调度结果指示信息用于指示对所述第一资源进行的所述目标调度操作成功的情况下,向所述客户端发放所述第二资源。
2.根据权利要求1所述的方法,其特征在于,在接收所述资源调度接口返回的资源调度结果指示信息之后,所述方法还包括:
在所述资源调度结果指示信息用于指示对所述第一资源进行的所述目标调度操作失败的情况下,向所述客户端发送第一指示信息,其中,所述第一指示消息用于指示对所述第一资源进行的所述目标调度操作失败。
3.根据权利要求1所述的方法,其特征在于,在向所述客户端发放所述第二资源失败的情况下,所述方法还包括以下至少之一:
向所述客户端发送第二指示信息,其中,所述第二指示消息用于指示向所述客户端发放所述第二资源失败;
向所述资源调度模块发送第三指示信息,其中,所述第三指示消息用于指示向所述客户端发放所述第二资源失败。
4.根据权利要求3所述的方法,其特征在于,在向所述资源调度模块发送第三指示信息之后,所述方法还包括:
通过所述资源调度模块回退对所述第一资源执行的所述目标调度操作。
5.根据权利要求1所述的方法,其特征在于,调用与所述业务请求对应的资源调度接口包括:
检查所述帐号是否满足对所述第一资源进行所述目标调度操作需具备的条件;
在所述帐号满足对所述第一资源进行所述目标调度操作需具备的条件的情况下,调用与所述业务请求对应的资源调度接口。
6.根据权利要求1至5中任一项所述的方法,其特征在于,在调用与所述业务请求对应的资源调度接口之后,所述方法还包括:
通过所述资源调度模块存储所述业务请求并根据所述业务请求对所述第一资源进行所述目标调度操作,得到所述操作结果;
通过所述资源调度模块根据所述操作结果通过所述资源调度接口返回所述资源调度结果指示信息。
7.根据权利要求6所述的方法,其特征在于,通过所述资源调度模块根据所述业务请求对所述第一资源进行所述目标调度操作,得到所述操作结果包括:
通过所述资源调度模块通过与所述目标调度操作对应的目标调度接口向资源调度平台发送请求信息,其中,所述请求信息用于请求所述资源调度平台执行所述目标调度操作;
通过所述资源调度模块接收所述资源调度平台通过所述目标调度接口返回的资源调度结果,其中,所述资源调度结果用于指示所述资源调度平台执行所述目标调度操作的结果;
通过所述资源调度模块存储所述资源调度结果,作为所述操作结果。
8.根据权利要求7所述的方法,其特征在于,通过所述资源调度模块通过与所述目标调度操作对应的目标调度接口向资源调度平台发送请求信息包括:
通过所述资源调度模块检测是否存储了所述操作结果;
在检测到未存储所述操作结果的情况下,通过所述资源调度模块通过与所述目标调度操作对应的目标调度接口向资源调度平台发送请求信息。
9.根据权利要求8所述的方法,其特征在于,在通过所述资源调度模块检测是否存储了所述操作结果之后,所述方法还包括:
在检测到存储了所述操作结果的情况下,通过所述资源调度模块读取所述操作结果。
10.根据权利要求7所述的方法,其特征在于,在通过所述资源调度模块接收所述资源调度平台通过所述目标调度接口返回的资源调度结果之后,所述方法还包括:
通过所述资源调度模块获取存储的所述业务请求并返回所述业务请求。
11.一种资源调度装置,其特征在于,包括:
第一接收模块,用于接收业务请求,其中,所述业务请求用于请求对第一资源进行目标调度操作以获取第二资源,所述第一资源是登录客户端的帐号所具有的资源;
调用模块,用于调用与所述业务请求对应的资源调度接口,其中,所述资源调度接口由资源调度模块提供,所述资源调度模块用于根据所述业务请求对所述第一资源进行所述目标调度操作;
第二接收模块,用于接收所述资源调度接口返回的资源调度结果指示信息,其中,所述资源调度结果指示信息用于指示对所述第一资源进行的所述目标调度操作的操作结果;
发放模块,用于在所述资源调度结果指示信息用于指示对所述第一资源进行的所述目标调度操作成功的情况下,向所述客户端发放所述第二资源。
12.一种资源调度装置,其特征在于,包括:业务流程模块和资源调度模块,其中,
所述业务流程模块,用于接收业务请求,其中,所述业务请求用于请求对第一资源进行目标调度操作以获取第二资源,所述第一资源是登录客户端的帐号所具有的资源;调用与所述业务请求对应的资源调度接口,其中,所述资源调度接口由所述资源调度模块提供;
所述资源调度模块,用于根据所述业务请求对所述第一资源进行所述目标调度操作;
所述业务流程模块,还用于接收所述资源调度接口返回的资源调度结果指示信息,其中,所述资源调度结果指示信息用于指示对所述第一资源进行的所述目标调度操作的操作结果;在所述资源调度结果指示信息用于指示对所述第一资源进行的所述目标调度操作成功的情况下,向所述客户端发放所述第二资源。
13.根据权利要求12所述的装置,其特征在于,在向所述客户端发放所述第二资源失败的情况下,所述业务流程模块还用于以下至少之一:
向所述客户端发送第二指示信息,其中,所述第二指示消息用于指示向所述客户端发放所述第二资源失败;
向所述资源调度模块发送第三指示信息,其中,所述第三指示消息用于指示向所述客户端发放所述第二资源失败。
14.根据权利要求12所述的装置,其特征在于,所述业务流程模块还用于:
检查所述帐号是否满足对所述第一资源进行所述目标调度操作需具备的条件;
在所述帐号满足对所述第一资源进行所述目标调度操作需具备的条件的情况下,调用与所述业务请求对应的资源调度接口。
15.根据权利要求12至14中任一项所述的装置,其特征在于,所述资源调度模块还用于:
存储所述业务请求并根据所述业务请求对所述第一资源进行所述目标调度操作,得到所述操作结果;
根据所述操作结果通过所述资源调度接口返回所述资源调度结果指示信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710596168.7A CN107465726A (zh) | 2017-07-20 | 2017-07-20 | 资源调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710596168.7A CN107465726A (zh) | 2017-07-20 | 2017-07-20 | 资源调度方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107465726A true CN107465726A (zh) | 2017-12-12 |
Family
ID=60543880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710596168.7A Pending CN107465726A (zh) | 2017-07-20 | 2017-07-20 | 资源调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107465726A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108280143A (zh) * | 2017-12-29 | 2018-07-13 | 天脉聚源(北京)科技有限公司 | 金库业务的数据处理方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104715363A (zh) * | 2013-12-13 | 2015-06-17 | 中兴通讯股份有限公司 | 支付处理方法及装置 |
CN105100162A (zh) * | 2014-05-19 | 2015-11-25 | 腾讯科技(深圳)有限公司 | 虚拟物品发送方法及装置、接收方法及装置、系统 |
CN105183895A (zh) * | 2015-09-29 | 2015-12-23 | 北京奇虎科技有限公司 | 虚拟资源推送方法和装置 |
CN105577722A (zh) * | 2014-10-16 | 2016-05-11 | 腾讯科技(深圳)有限公司 | 积分兑换方法和装置 |
CN106657232A (zh) * | 2016-09-29 | 2017-05-10 | 山东浪潮商用系统有限公司 | 一种分布式服务器架构及其服务方法 |
-
2017
- 2017-07-20 CN CN201710596168.7A patent/CN107465726A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104715363A (zh) * | 2013-12-13 | 2015-06-17 | 中兴通讯股份有限公司 | 支付处理方法及装置 |
CN105100162A (zh) * | 2014-05-19 | 2015-11-25 | 腾讯科技(深圳)有限公司 | 虚拟物品发送方法及装置、接收方法及装置、系统 |
CN105577722A (zh) * | 2014-10-16 | 2016-05-11 | 腾讯科技(深圳)有限公司 | 积分兑换方法和装置 |
CN105183895A (zh) * | 2015-09-29 | 2015-12-23 | 北京奇虎科技有限公司 | 虚拟资源推送方法和装置 |
CN106657232A (zh) * | 2016-09-29 | 2017-05-10 | 山东浪潮商用系统有限公司 | 一种分布式服务器架构及其服务方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108280143A (zh) * | 2017-12-29 | 2018-07-13 | 天脉聚源(北京)科技有限公司 | 金库业务的数据处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106970846B (zh) | 支付系统消息控制和处理方法、装置 | |
CN109656782A (zh) | 可视化调度监控方法、装置及服务器 | |
WO2021031472A1 (zh) | 智能合约处理方法、装置、计算机设备及存储介质 | |
US8898641B2 (en) | Managing transactions within a middleware container | |
CN109376811A (zh) | 一种智能换卡方法、装置、终端及计算机可读介质 | |
CN110009365B (zh) | 非正常转移电子资产的用户群体检测方法、装置和设备 | |
CN108111554A (zh) | 一种访问队列的控制方法及装置 | |
CN110264358A (zh) | 一种交易处理方法及装置 | |
CN108415768B (zh) | 一种数据批处理方法与系统 | |
CN106095554A (zh) | 在日间联机阶段进行批量数据处理的方法及装置 | |
CN109885382A (zh) | 跨系统分布式事务处理方法和分布式事务处理的系统 | |
CN109636594A (zh) | 基于大数据的资产包管理方法、装置、设备及存储介质 | |
CN109582655A (zh) | 系统日志的定位方法及装置、计算机可读存储介质 | |
CN106845746A (zh) | 一种支持大规模实例密集型应用的云工作流管理系统 | |
CN110347735A (zh) | 配置化的数据转发异常补处理方法、装置及可读存储介质 | |
CN108038126A (zh) | 一种数据导出的方法、装置、终端设备及存储介质 | |
CN107864187A (zh) | 终端设备联机任务执行方法及服务器 | |
CN110009358A (zh) | 资源调拨风险防控方法、装置及服务器 | |
CN107465726A (zh) | 资源调度方法及装置 | |
CN107239865A (zh) | 一种互联网信息资源的调度方法、装置与系统 | |
CN104184685B (zh) | 数据中心资源分配方法、装置及系统 | |
CN107391361A (zh) | 一种pos终端自动测试方法及装置 | |
CN106933655A (zh) | 事件执行方法及装置 | |
CN107066315A (zh) | 业务调用方法及装置 | |
CN110428315A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171212 |
|
RJ01 | Rejection of invention patent application after publication |