本发明涉及计算机技术领域,特别涉及一种请求处理装置、方法及终端。
背景技术:
目前,服务端在接收到请求后,只在请求处理完成后向客户端发送请求处理结果信息,例如在用Web界面向服务端发送一个操作请求或信息获取请求,然而服务端接收到这个请求后,需要花费一些时间处理,才能返回具体信息。这样的请求处理过程会产生一些问题,即用户需要等待服务器处理完成后,才能接收到这个请求处理结果信息,并且用户看不到该请求的具体处理过程,如果请求失败,用户还要去执行一些额外的操作来查看具体的错误信息等问题。
技术实现要素:
本发明的目的是提供一种请求处理装置、方法及终端,可以将该请求处理状态和进度展示给用户,使用户及时了解请求处理进程,提高用户体验。
为解决上述技术问题,本发明提供一种请求处理装置,包括:
请求接收单元,用于接收客户端发送的请求;
请求线程处理单元,用于为接收到的请求分配对应的请求处理线程,并调用线程跟踪函数检测所述请求处理线程的处理进度;
请求处理单元,用于执行所述请求处理线程;
进度反馈单元,用于将所述请求处理线程的处理进度反馈给所述客户端。
可选的,所述请求线程处理单元,包括:
请求线程异步处理模块,用于为接收到的每个请求分配对应的请求处理线程,并调用线程跟踪函数检测所述请求处理线程的处理进度;或,
请求线程同步处理模块,用于按照请求接收顺序依次调用请求处理线程,并调用线程跟踪函数检测所述请求处理线程的处理进度。
可选的,所述进度反馈单元,包括:
进度反馈模块,用于将所述请求处理线程的处理进度以进度条的形式反馈给所述客户端。
可选的,该请求处理装置还包括:
请求数据记录单元,用于记录所述请求的业务信息;其中,所述业务信息包括请求描述,请求处理进度,错误信息。
可选的,该请求处理装置还包括:
请求取消单元,用于接收所述客户端发送的取消指令,将对应请求处理状态标记为取消状态。
本发明还提供一种请求处理方法,包括:
接收客户端发送的请求,并为接收到的请求分配对应的请求处理线程;
执行所述请求处理线程;
调用线程跟踪函数检测所述请求处理线程的处理进度;
将所述请求处理线程的处理进度反馈给所述客户端。
可选的,所述为接收到的请求分配对应的请求处理线程,包括:
为接收到的每个请求分配对应的请求处理线程;或,
按照请求接收顺序依次调用请求处理线程。
可选的,该请求处理方法还包括:
记录所述请求的业务信息;其中,所述业务信息包括请求描述,请求处理进度,错误信息。
可选的,接收客户端发送的请求之后且为接收到的请求分配对应的请求处理线程之前,还包括:
接收所述客户端发送的取消指令,将对应请求处理状态标记为取消状态。
本发明还提供一种终端,包括:
接收器,用于接收客户端发送的请求;
处理器,用于为接收到的请求分配对应的请求处理线程;执行所述请求处理线程;调用线程跟踪函数检测所述请求处理线程的处理进度;
发送器,用于将所述请求处理线程的处理进度反馈给所述客户端。
本发明所提供的一种请求处理装置,包括:请求接收单元,用于接收客户端发送的请求;请求线程处理单元,用于为接收到的请求分配对应的请求处理线程,并调用线程跟踪函数检测所述请求处理线程的处理进度;请求处理单元,用于执行所述请求处理线程;进度反馈单元,用于将所述请求处理线程的处理进度反馈给所述客户端;
可见,该请求处理装置利用请求线程处理单元监控请求处理单元中请求处理线程的处理进度即请求处理状态,并通过进度反馈单元将处理进度即处理状态反馈给用户;可以变现有技术中请求处理过程没有反馈的缺点,可以将该请求处理状态即进度展示给用户,使用户及时了解请求处理进程,提高用户体验;本发明还提供了一种请求处理方法及终端,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的一种请求处理装置的结构框图;
图2为本发明实施例所提供的另一请求处理装置的结构框图;
图3为本发明实施例所提供的又一请求处理装置的结构框图;
图4为本发明实施例所提供的又一请求处理装置的层次结构示意图;
图5为本发明实施例所提供的一种请求处理方法的流程图;
图6为本发明实施例所提供的一种终端的结构框图。
具体实施方式
本发明的核心是提供一种请求处理装置、方法及终端,可以将该请求处理状态和进度展示给用户,使用户及时了解请求处理进程,提高用户体验。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实施例提供的请求处理装置可以是按照面向对象的开发方式进行构件装置的,由于面向对象的开发方式各个单元之间存在多态和继承的关系,因此该装置有很好可扩展性。具体请参考图1,图1为本发明实施例所提供的请求处理装置的结构框图;该请求处理装置可以包括:
请求接收单元100,用于接收客户端发送的请求;
请求线程处理单元200,用于为接收到的请求分配对应的请求处理线程,并调用线程跟踪函数检测所述请求处理线程的处理进度;
请求处理单元300,用于执行所述请求处理线程;
进度反馈单元400,用于将所述请求处理线程的处理进度反馈给所述客户端。
具体的,请求接收单元100是抽象出用户请求处理的公共数据部分,例如公共的字段和方法,可以作为面向对象开发中的基类可作为第一层结构也即基层结构。
请求线程处理单元200利用面向对象多态,继承和覆盖特点,设置请求处理线程的分配,请求处理线程的跟踪等功能。其中,请求处理线程的分配主要考虑请求的执行方式,若请求是异步处理则可以为每一个请求设置一个对应的请求处理线程;若请求是同步处理则可以设置一个请求处理线程,按照请求接收顺序依次处理各个请求;请求线程处理单元200可以同时存在异步处理和同步处理两种形式,例如根据请求的种类确定其处理方式;如操作请求采用异步处理方式,消息获取请求采用同步处理方式。即可选的,所述请求线程处理单元200可以包括:
请求线程异步处理模块,用于为接收到的每个请求分配对应的请求处理线程,并调用线程跟踪函数检测所述请求处理线程的处理进度;或,
请求线程同步处理模块,用于按照请求接收顺序依次调用请求处理线程,并调用线程跟踪函数检测所述请求处理线程的处理进度。
进一步,为了提高客户端请求的处理速度,提高用户体验,这里的请求处理可以采用异步处理方式进行。即优选的,所述请求线程处理单元200具体包括请求线程异步处理模块,用于为接收到的每个请求分配对应的请求处理线程,并调用线程跟踪函数检测所述请求处理线程的处理进度。
具体的,请求线程异步处理模块加入多线程功能和请求处理过程跟踪功能,请求线程同步处理模块加入单线程功能和请求处理过程跟踪功能,请求线程处理单元200通过继承特点,每一个具体的请求处理类都可以获得这两个功能,只需对应的线程执行程序和线程进度检测程序即可,例如要调用Run Work()和Task Poll To Complection(),就可以实现这两个功能。请求异步处理类通过实现第三层中的Run()方法,来实现自身所要做的对应处理。即请求线程处理单元200是请求处理单元300的父类。例如请求线程异步处理模块引入多线程操作,用一个线程处理每个具体的客户端的请求,并且可以检测请求处理的进度和取消请求处理过程等。
进度反馈单元400用于及时将请求线程处理单元200的得到的请求处理线程的处理进度结果向客户端进行反馈,使用户能够及时获取处理进度。这里的处理进度可以包括进程处理程度(例如可以通过进度条,饼状图等形式进行表示),还可以包括处理进程信息即请求状态信息(例如请求已成功发送至数据库端,数据库端已成功进行数据查找,数据库端正在进行数据发送等)等。其输出形式可以是通过显示屏记性显示,也可以是通过语音等形式进行发送。
具体的,请求接收单元100,请求线程处理单元200,请求处理单元300可以设计为3层数据结构,请求接收单元100为基层即第一层,请求线程处理单元200为第二层,请求处理单元300为第三层。这3层是依次被继承的关系,组成请求处理链。这样的数据结构适合后续功能的扩展;例如在请求线程处理单元200中增加记录处理信息的功能,则请求处理单元300即可以继承该功能,在请求处理过程中,调用对应的处理信息记录程序实现记录处理信息的功能。
基于上述技术方案,本发明实施例提的请求处理装置,可以解决客户端发出请求后,等待服务端返回结果,以及请求处理过程和进度显示的等问题。本实施例可以采用三层的继承结构,利用多态的方式引入多线程,这样客户端的每一个请求都会用一个异步线程来进行处理,这样用户发出请求后就不会处于等待状态,且可以看到请求的处理过程。
基于上述实施例,请参考图2,该请求处理装置还可以包括:
请求数据记录单元500,用于记录所述请求的业务信息;其中,所述业务信息包括请求描述,请求处理进度,错误信息。
具体的,每一个请求都会产生一个业务即一个业务信息,用于记录请求处理过程中的信息,进一步为了方便后续用户对业务信息的查看可以将该业务信息保存到数据库中,通过修改业务的状态字段,取消请求处理业务的继续执行,可以有效的解决用户请求所出现的问题。也便于技术人员根据请求数据记录单元500中存储的业务信息优化请求处理过程,提高请求处理合理性和可靠性。减少请求处理的错误率。即请求处理过程的一个信息类,包括名称,具体描述,进度,错误信息等,每一条业务信息都会放置在数据库(Request Processing DB)中的业务列表中进行记录。
基于上述任意实施例,请参考图3(仅其中一个例子,本实施例中的请求取消单元600可以与上述任意实施例中的单元进行组合),该请求处理装置还可以包括:
请求取消单元600,用于接收所述客户端发送的取消指令,将对应请求处理状态标记为取消状态。
具体的,用于标记请求处理过程的取消状态;即正在取消,已取消等,可以根据客户端即用户发用的取消指令,及时将对应请求处理状态标记为取消状态。以便节省线程,即节省计算空间。提高其他请求的处理效率。
本实施例中该装置请求接收单元100,请求取消单元600,请求线程处理单元200,请求处理单元300可以设计为4层数据结构,请求接收单元100为基层即第一层,请求取消单元600为第二层,请求线程处理单元200为第三层,请求处理单元300为第四层。
即该请求处理装置简称装置利用面向对象开发的特点,以及结合客户端发出请求,服务端处理用户请求的具体过程,将该请求处理状态和进度展示给用户,并且让用户可以取消请求处理。本实施例中的装置结构设计是使用面向对象开发中多态和继承的特点,将从服务端处理用户请求设计为一个四层结构,请参考图4,图4中的请求接收单元100即RequestProcessingBase,请求取消单元600即CancellingProcess,请求线程处理单元200即AsyncProcess,请求处理单元300即XXProcess(即图4中X1RequestProcess)到XNRequestProcess。RequestProcessingBase中包含有#ProcessTask基类,CancellingProcess包含有#Cancelling:Boolran和#Cancelled:Boolran类,AsyncProcess中包含数据库-TaskDB,+RunWork():void,#Run():abstract void,+Task PollToComplection():void类,XXProcess中包含#Run():override void。
基于上述技术方案,本发明实施例提的请求处理装置,可以解决客户端发出请求后,等待服务端返回结果,以及请求处理过程和进度显示的等问题。本实施例可以采用四层的继承结构,采用多态的方式引入多线程,用户的每一个请求都会用一个异步线程来进行处理,这样用户发出请求后就不会处于等待状态,且可以看到请求的处理过程。此外,每一个用户请求都会产生一个业务,用于记录请求处理过程中的信息,并且将该业务信息保存到数据库中,通过修改业务的状态字段,取消请求处理业务的继续执行,可以有效的解决用户请求所出现的问题。
下面对本发明实施例提供的请求处理方法及终端进行介绍,下文描述的请求处理方法及终端与上文描述的请求处理装置可相互对应参照。
请参考图5,图5为本发明实施例所提供的一种请求处理方法的流程图;该方法可以包括:
S100、接收客户端发送的请求,并为接收到的请求分配对应的请求处理线程;
S110、执行所述请求处理线程;
S120、调用线程跟踪函数检测所述请求处理线程的处理进度;
S130、将所述请求处理线程的处理进度反馈给所述客户端。
基于上述实施例,所述为接收到的请求分配对应的请求处理线程可以包括:
为接收到的每个请求分配对应的请求处理线程;或,
按照请求接收顺序依次调用请求处理线程。
基于上述任意实施例,该方法还可以包括:
记录所述请求的业务信息;其中,所述业务信息包括请求描述,请求处理进度,错误信息。
基于上述任意实施例,该方法在接收客户端发送的请求之后且为接收到的请求分配对应的请求处理线程之前,还可以包括:
接收所述客户端发送的取消指令,将对应请求处理状态标记为取消状态。
请参考图6,本发明还提供一种终端,包括:
接收器700,用于接收客户端发送的请求;
处理器800,用于为接收到的请求分配对应的请求处理线程;执行所述请求处理线程;调用线程跟踪函数检测所述请求处理线程的处理进度;
发送器900,用于将所述请求处理线程的处理进度反馈给所述客户端。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的一种请求处理装置、方法及终端进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。