发明内容
本申请在于提供一种业务的处理方法及装置,以有效的解决上述存在技术问题。
为了实现上述目的,本申请的实施例通过如下方式实现:
第一方面,本申请实施例提供了一种业务的处理方法,所述方法包括:
获得业务请求的相关参数;
将所述相关参数存储,以及将所述业务请求关联到业务执行队列中;
在所述业务执行队列执行到所述业务请求时,根据存储所述相关参数执行所述业务请求,并获得所述业务请求的执行结果;
在根据所述执行结果确定所述业务请求执行失败时,记录根据所述相关参数和所述执行结果生成的业务日志。
在第一方面的一些可选地的实现方式中,将所述相关参数存储,以及将所述业务请求关联到业务执行队列中,包括:
将存储在第一临时变量中所述相关参数存储到Redis中所述业务请求对应的存储区域,以及在所述业务执行队列中建立关联所述业务请求的Redis业务键名。
在第一方面的一些可选地的实现方式中,根据存储所述相关参数执行所述业务请求,并获得所述业务请求的执行结果,包括:
根据所述业务执行队列中的所述Redis业务键名,获得存储在所述存储区域中的与所述Redis业务键名关联的所述相关参数,并建立第二临时变量存储所述相关参数;
根据所述第二临时变量中的所述相关参数执行所述业务请求,并获得所述业务请求的执行结果。
在第一方面的一些可选地的实现方式中,所述相关参数包括请求参数和端口调用结果;
所述获得业务请求的相关参数,包括:
建立第一临时变量以存储获得业务请求的请求参数;
根据所述请求参数调用执行所述业务请求所需的相关端口,并获得端口调用结果,并在所述第一临时变量中存储的所述端口调用结果。
在第一方面的一些可选地的实现方式中,在所述业务执行队列执行到所述业务请求时,根据存储所述相关参数执行所述业务请求,并获得所述业务请求的执行结果之后,所述方法还包括:
在根据所述执行结果确定所述业务请求执行成功时,将所述相关参数和所述执行结果删除。
第二方面,本申请实施例提供了一种业务的处理装置,所述装置包括:
获得模块,用于获得业务请求的相关参数;
处理模块,用于将所述相关参数存储,以及将所述业务请求关联到业务执行队列中;
执行模块,用于在所述业务执行队列执行到所述业务请求时,根据存储所述相关参数执行所述业务请求,并获得所述业务请求的执行结果;
记录模块,用于在根据所述执行结果确定所述业务请求执行失败时,记录根据所述相关参数和所述执行结果生成的业务日志。
在第二方面的一些可选地的实现方式中,所述处理模块,还用于将存储在第一临时变量中所述相关参数存储到Redis中所述业务请求对应的存储区域,以及在所述业务执行队列中建立关联所述业务请求的Redis业务键名。
在第二方面的一些可选地的实现方式中,所述执行模块,还用于根据所述业务执行队列中的所述Redis业务键名,获得存储在所述存储区域中的与所述Redis业务键名关联的所述相关参数,并建立第二临时变量存储所述相关参数;根据所述第二临时变量中的所述相关参数执行所述业务请求,并获得所述业务请求的执行结果。
在第二方面的一些可选地的实现方式中,所述相关参数包括请求参数和端口调用结果;
所述获得模块,还用于建立第一临时变量以存储获得业务请求的请求参数;根据所述请求参数调用执行所述业务请求所需的相关端口,并获得端口调用结果,并在所述第一临时变量中存储的所述端口调用结果。
在第二方面的一些可选地的实现方式中,所述装置还包括:
删除模块,用于在根据所述执行结果确定所述业务请求执行成功时,将所述相关参数和所述执行结果删除。
第三方面,本申请实施例提供了一种电子设备,所述电子设备包括:处理器,存储器,总线和通信接口;所述处理器、所述通信接口和存储器通过所述总线连接。
所述存储器,用于存储程序。
所述处理器,用于通过调用存储在所述存储器中的程序,以执行第一方面、及第一方面的任一种实施方式所述的业务的处理方法。
第四方面,本申请实施例提供了一种具有计算机可执行的非易失程序代码的计算机可读储存介质,所述程序代码使所述计算机执行第一方面,以及第一方面任一实施方式所述的业务的处理方法。
本申请实施例的有益效果是:
通过将该业务请求的相关参数存储,那么在业务执行队列异步执行到该业务请求时,不仅可以依据存储该相关参数执行业务请求,且在根据执行结果确定业务请求执行失败时,就算业务执行队列异步执行将该业务请求的执行割裂开,但还可以依据存储的相关参数和执行结果生成的能够表达该业务请求完整执行过程的业务日志。使得运维人员根据业务日志能够获知业务请求整个执行过程是怎样的,从而使得运维人员可以便捷的对业务请求的执行发生错误的问题进行查找和定位。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有进行出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
第一实施例
请参阅图1,本申请实施例提供了电子设备10,电子设备10可以为终端设备或者为服务器。其中,终端设备可以为个人电脑(personal computer,PC)、平板电脑、智能手机、个人数字助理(personal digital assistant,PDA)等;服务器可以为网络服务器、数据库服务器、云服务器或由多个子服务器构成的服务器集成等。
本实施例中,该电子设备10可以包括:存储器11、通信模块12、总线13和处理器14。其中,处理器14、通信模块12和存储器11通过总线13连接。处理器14用于执行存储器11中存储的可执行模块,例如计算机程序。图1所示的电子设备10的组件和结构只是示例性的,而非限制性的,根据需要,电子设备10也可以具有其他组件和结构。
其中,存储器11可能包含高速随机存取存储器(Random Access Memory RAM),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。本实施例中,存储器11存储了执行业务的处理方法所需要的程序。
总线13可以是ISA总线、PCI总线或EISA总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图1中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器14可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器14中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器14可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。
本发明实施例任意实施例揭示的流过程或定义的装置所执行的方法可以应用于处理器14中,或者由处理器14实现。处理器14在接收到执行指令后,通过总线13调用存储在存储器11中的程序后,处理器14通过总线13控制通信模块12则可以执行业务的处理方法的流程。
第二实施例
请参阅图2,本实施例提供了一种业务的处理方法,该业务的处理方法应用于电子设备,该业务的处理方法包括:步骤S100、步骤S200、步骤S300和步骤S400。
步骤S100:获得业务请求的相关参数。
步骤S200:将所述相关参数存储,以及将所述业务请求关联到业务执行队列中。
步骤S300:在所述业务执行队列执行到所述业务请求时,根据存储所述相关参数执行所述业务请求,并获得所述业务请求的执行结果。
步骤S400:在根据所述执行结果确定所述业务请求执行失败时,记录根据所述相关参数和所述执行结果生成的业务日志。
下面将对本申请的方法流程进行详细地描述。
步骤S100:获得业务请求的相关参数。
业务请求可以为用户发起的请求,或者业务请求也可以为电子设备或电子设备上的应用程序按照预设程序在运行的过程中需要生成的请求。例如,业务请求为用户发起的请求时,业务请求可以为例如支付请求、视频获得请求等;又例如,业务请求为按照预设程序运行而生成的请求时,业务请求可以为例如数据更新请求、图像压缩请求等。
当然,不论是用户发起的请求还是根据按照预设程序运行而生成的请求,电子设备都基于生成该业务请求而获得该业务请求中的请求参数。
可选地,电子设备获得的请求参数可以包括:业务请求的路径、业务请求的类型、业务请求的参数、业务请求的请求体、业务请求的头部和业务请求的来源。
由于电子设备执行该业务请求为在电子设备的内存中执行,那么电子设备可以在内存中建立一个第一临时变量,从而将获得的该请求参数以数组的形成存储到该临时变量中。这样,电子设备就可以根据第一临时变量中的请求参数调用执行该业务请求所需的相关端口,并获得端口调用结果。其中,所调用的相关端口可以为电子设备上的第三方端口,例如,电子设备上的视频APP发起支付请求,那么该电子设备执行该支付请求就需要去调用电子设备上的支付APP的相关端口,以实现最终的支付功能。
当然,为保证数据的完整性,电子设备也将获得的端口调用结果以数组的形式存储到该第一临时变量中。这样,第一临时变量中就保存了请求参数和端口调用结果,该请求参数和端口调用结果则可以认为是该业务请求的相关参数,即电子设备就获得了该业务请求包含请求参数和端口调用结果的相关参数。
电子设备在获得相关参数后,电子设备可以继续执行步骤S200。
步骤S200:将所述相关参数存储,以及将所述业务请求关联到业务执行队列中。
第一临时变量位于电子设备的内存中,那么第一临时变量就要占用内存的资源。为优化内存的资源利用率,电子设备将获得的端口调用结果存储到第一临时变量中后,电子设备可以将该第一临时变量中的相关参数存储到电子设备的Redis中业务请求对应的存储区域,并将内存中的该第一临时变量删除。这样即保证了该业务请求的相关参数通过被存储到存储区域而不丢失,且删除了内存中的第一临时变量又优化内存的资源利用率。、
本实施例中,也由于该业务请求为异步执行,故该业务请求后续还需要在业务执行队列中对其进行执行。那么,在Redis中的存储区域存储该业务请求的相关参数的同时,还可以将该业务请求关联到业务执行队列中,以便后续能够通过业务执行队列继续执行该业务请求。
作为将业务请求和业务执行队列进行关联的一种方式,可以在业务执行队列中建立关联业务请求的Redis业务键名,该Redis业务键名就使得电子设备将该业务执行队列中的业务执行到该Redis业务键名处时,电子设备可以根据该Redis业务键名而去Redis的存储区域中查找该业务请求的相关参数。
可以理解到,将所述业务请求关联到业务执行队列中后,电子设备可以继续执行步骤S300。
步骤S300:在所述业务执行队列执行到所述业务请求时,根据存储所述相关参数执行所述业务请求,并获得所述业务请求的执行结果。
随着电子设备对业务执行队列中依次排序的各业务依次进行执行,那么电子设备可以执行到该业务执行队列中该业务请求在业务执行队列中的Redis业务键名处。这样,电子设备就可以获得该Redis业务键名。
电子设备通过对该Redis业务键名进行解析,电子设备可以获知该Redis业务键名表示电子设备需要去获得该业务请求的相关参数。那么,电子设备根据该Redis业务键名可以从Redis中找到与该Redis业务键名关联的存储区域,从而从该存储区域中获得存储的该业务请求的相关参数。
也由于电子设备执行该业务请求为在电子设备的内存中执行,那么电子设备还可以在内存中重新建立一个第二临时变量,从而将获得的相关参数还原到第二临时变量中。这样,电子设备就可以根据对第二临时变量中的相关参数的执行,而实现对该业务请求进行执行,进而电子设备就可以获得表示该业务请求的执行为成功或者失败的执行结果。例如,电子设备上的视频APP发起支付请求,那么该电子设备通过对该支付请求的相关参数的执行,就可以通过电子设备上的支付APP发起支付,并获得表示支付成功或者失败的支付结果。
本实施例中,电子设备获得执行结果后,电子设备可以继续执行步骤S400。
步骤S400:在根据所述执行结果确定所述业务请求执行失败时,记录根据所述相关参数和所述执行结果生成的业务日志。
电子设备可以根据执行结果中的返回值来判断对该业务请求的执行是成功还是失败。
若获得执行结果中的返回值为第一预设值,那么电子设备可以根据该第一预设值判断对业务请求的执行为执行成功。基于该结果,为保证电子设备的性能,电子设备可以将第二临时变量删除,以对内存进行优化。与此同时,电子设备还可以将获得的执行结果和将Redis中存储的该业务请求的相关参数均删除,以避免这些冗余的数据影响设备的性能。
若获得执行结果中的返回值为第二预设值,那么电子设备可以根据该第二预设值判断对业务请求的执行为执行失败。基于该结果,为保证运维人员能够准确的定位出执行失败的原因,电子设备可以基于获得的执行结果和Redis中存储的该业务请求的相关参数,生成该业务请求的业务日志。由于执行结果和相关参数能够完整的表示出该业务请求完整的执行过程,那么运维人员基于包含执行结果和相关参数的业务日志,便能够从完整的执行过程中快速并准确的定位该业务请求执行失败的原因。
可以理解到,也为保证电子设备的性能,在生成业务日志后,电子设备也可以将第二临时变量删除,以对内存进行优化。与此同时,电子设备还可以将获得的执行结果和将Redis中存储的该业务请求的相关参数均删除,也避免这些冗余的数据影响设备的性能。
第三实施例
请参阅图3,本申请实施例提供了一种业务的处理装置100,应用于电子设备,业务的处理装置100包括:
获得模块110,用于获得业务请求的相关参数。
处理模块120,用于将所述相关参数存储,以及将所述业务请求关联到业务执行队列中。
执行模块130,用于在所述业务执行队列执行到所述业务请求时,根据存储所述相关参数执行所述业务请求,并获得所述业务请求的执行结果。
记录模块140,用于在根据所述执行结果确定所述业务请求执行失败时,记录根据所述相关参数和所述执行结果生成的业务日志。
删除模块150,用于在根据所述执行结果确定所述业务请求执行成功时,将所述请求参数和所述执行结果删除。
可选地,所述获得模块110,还用于建立第一临时变量存储获得业务请求的请求参数;根据所述请求参数调用执行所述业务请求所需的相关端口,并获得端口调用结果,并在所述第一临时变量中存储的所述端口调用结果。
详细地,业务请求可以为用户发起的请求,或者业务请求也可以为电子设备或电子设备上的应用程序按照预设程序在运行的过程中需要生成的请求。例如,业务请求为用户发起的请求时,业务请求可以为例如支付请求、视频获得请求等;又例如,业务请求为按照预设程序运行而生成的请求时,业务请求可以为例如数据更新请求、图像压缩请求等。
当然,不论是用户发起的请求还是根据按照预设程序运行而生成的请求,获得模块110都基于生成该业务请求而获得该业务请求中的请求参数。
可选地,获得模块110获得的请求参数可以包括:业务请求的路径、业务请求的类型、业务请求的参数、业务请求的请求体、业务请求的头部和业务请求的来源。
由于获得模块110执行该业务请求为在电子设备的内存中执行,那么获得模块110可以在内存中建立一个第一临时变量,从而将获得的该请求参数以数组的形成存储到该临时变量中。这样,获得模块110就可以根据第一临时变量中的请求参数调用执行该业务请求所需的相关端口,并获得端口调用结果。其中,所调用的相关端口可以为电子设备上的第三方端口,例如,电子设备上的视频APP发起支付请求,那么该获得模块110执行该支付请求就需要去调用电子设备上的支付APP的相关端口,以实现最终的支付功能。
当然,为保证数据的完整性,获得模块110也将获得的端口调用结果以数组的形式存储到该第一临时变量中。这样,第一临时变量中就保存了请求参数和端口调用结果,该请求参数和端口调用结果则可以认为是该业务请求的相关参数,即获得模块110就获得了该业务请求包含请求参数和端口调用结果的相关参数。
可选地,所述处理模块120,还用于将存储在第一临时变量中所述请求参数存储到Redis中所述业务请求对应的存储区域,以及在所述业务执行队列中建立关联所述业务请求的Redis业务键名。
详细地,第一临时变量位于电子设备的内存中,那么第一临时变量就要占用内存的资源。为优化内存的资源利用率,获得模块110将获得的端口调用结果存储到第一临时变量中后,处理模块120可以将该第一临时变量中的相关参数存储到电子设备的Redis中业务请求对应的存储区域,并将内存中的该第一临时变量删除。这样即保证了该业务请求的相关参数通过被存储到存储区域而不丢失,且删除了内存中的第一临时变量又优化内存的资源利用率。、
本实施例中,也由于该业务请求为异步执行,故该业务请求后续还需要在业务执行队列中对其进行执行。那么,处理模块120在Redis中的存储区域存储该业务请求的相关参数的同时,处理模块120还可以将该业务请求关联到业务执行队列中,以便后续能够通过业务执行队列继续执行该业务请求。
作为将业务请求和业务执行队列进行关联的一种方式,处理模块120可以在业务执行队列中建立关联业务请求的Redis业务键名,该Redis业务键名就使得处理模块120将该业务执行队列中的业务执行到该Redis业务键名处时,处理模块120可以根据该Redis业务键名而去Redis的存储区域中查找该业务请求的相关参数。可选地,所述执行模块130,还用于根据所述业务执行队列中的所述Redis业务键名,获得存储在所述存储区域中的与所述Redis业务键名关联的所述相关参数,并建立第二临时变量存储所述相关参数;根据所述第二临时变量中的所述相关参数执行所述业务请求,并获得所述业务请求的执行结果。
随着执行模块130对业务执行队列中依次排序的各业务依次进行执行,那么执行模块130可以执行到该业务执行队列中该业务请求在业务执行队列中的Redis业务键名处。这样,执行模块130就可以获得该Redis业务键名。
执行模块130通过对该Redis业务键名进行解析,执行模块130可以获知该Redis业务键名表示执行模块130需要去获得该业务请求的相关参数。那么,执行模块130根据该Redis业务键名可以从Redis中找到与该Redis业务键名关联的存储区域,从而从该存储区域中获得存储的该业务请求的相关参数。
也由于执行模块130执行该业务请求为在电子设备的内存中执行,那么执行模块130还可以在内存中重新建立一个第二临时变量,从而将获得的相关参数还原到第二临时变量中。这样,执行模块130就可以根据对第二临时变量中的相关参数的执行,而实现对该业务请求进行执行,进而执行模块130就可以获得表示该业务请求的执行为成功或者失败的执行结果。例如,电子设备上的视频APP发起支付请求,那么该电子设备通过对该支付请求的相关参数的执行,就可以通过电子设备上的支付APP发起支付,并获得表示支付成功或者失败的支付结果。
详细地,记录模块140和删除模块150可以根据执行结果中的返回值来判断对该业务请求的执行是成功还是失败。
若获得执行结果中的返回值为第一预设值,那么记录模块140可以根据该第一预设值判断对业务请求的执行为执行成功。基于该结果,为保证电子设备的性能,记录模块140可以将第二临时变量删除,以对内存进行优化。与此同时,记录模块140还可以将获得的执行结果和将Redis中存储的该业务请求的相关参数均删除,以避免这些冗余的数据影响设备的性能。
若获得执行结果中的返回值为第二预设值,那么删除模块150可以根据该第二预设值判断对业务请求的执行为执行失败。基于该结果,为保证运维人员能够准确的定位出执行失败的原因,删除模块150可以基于获得的执行结果和Redis中存储的该业务请求的相关参数,生成该业务请求的业务日志。由于执行结果和相关参数能够完整的表示出该业务请求完整的执行过程,那么运维人员基于包含执行结果和相关参数的业务日志,便能够从完整的执行过程中快速并准确的定位该业务请求执行失败的原因。
可以理解到,也为保证电子设备的性能,在生成业务日志后,删除模块150也可以将第二临时变量删除,以对内存进行优化。与此同时,删除模块150还可以将获得的执行结果和将Redis中存储的该业务请求的相关参数均删除,也避免这些冗余的数据影响设备的性能。本领域内的技术人员应明白,本申请实施例可提供为方法、***、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
综上所述,本申请实施例提供了一种业务的处理方法及装置。方法包括:获得业务请求的相关参数;将相关参数存储,以及将业务请求关联到业务执行队列中;在业务执行队列执行到业务请求时,根据存储相关参数执行业务请求,并获得业务请求的执行结果;在根据执行结果确定业务请求执行失败时,记录根据相关参数和执行结果生成的业务日志。
通过将该业务请求的相关参数存储,那么在业务执行队列异步执行到该业务请求时,不仅可以依据存储该相关参数执行业务请求,且在根据执行结果确定业务请求执行失败时,就算业务执行队列异步执行将该业务请求的执行割裂开,但还可以依据存储的相关参数和执行结果生成的能够表达该业务请求完整执行过程的业务日志。使得运维人员根据业务日志能够获知业务请求整个执行过程是怎样的,从而使得运维人员可以便捷的对业务请求的执行发生错误的问题进行查找和定位。
以上仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。