一种推送业务处理结果的方法及装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种推送业务处理结果的方法及装置。
背景技术
随着互联网、计算机(或称终端,包括移动计算机,又称移动终端)的发展,出现了各种互联网业务(简称业务),用户可以通过计算机在互联网中请求并完成业务。从一个业务开始到完成包含下述步骤:业务请求、业务处理、结果返回,这其中业务处理往往占据大部分时间,并且由于业务数量繁多、种类复杂,会有很多业务处理超时的情况,比如,查询业务,由于查询请求较多,在处理查询请求时很可能出现处理超时。
现有技术,如图1所示,业务请求方(简称请求终端)与业务处理方(简称处理终端)多以短连接方式进行交互,短连接(short connection)是指在数据传输过程中,只在需要发送数据时,才去建立一个连接,数据发送完成后,则断开此连接,即每次连接只完成一项业务的发送。当请求终端与处理终端建立短连接后发送业务请求,处理终端如果出现处理超时,则向请求终端返回正在处理的结果,或直接断开此短连接。此后业务终端需要通过轮询的方式查询处理结果,即当处理终端将业务处理完成后,需要请求终端再以短连接方式与处理终端建立一次连接,从而获取处理结果,以便完成业务。但显然建立短连接会产生耗时,这段时间本身与业务处理的耗时无关,而是额外产生,导致增加了整个业务完成过程的耗时,从而降低了业务完成的效率。
发明内容
本申请实施例提供一种推送业务处理结果的方法,用于提高互联网业务的完成效率。
本申请实施例提供一种推送业务处理结果的装置,用于提高互联网业务的完成效率。
本申请实施例采用下述技术方案:
一种推送业务处理结果的方法,包括:
处理终端对请求终端通过短连接发送的业务请求进行处理;
当出现业务处理超时,断开所述短连接;
所述处理终端确定与所述请求终端之间的可用长连接;
当所述处理终端完成业务处理,通过所述可用长连接将处理结果推送至所述请求终端。
优选地,所述处理终端确定与所述请求终端之间的可用长连接,包括:
当所述处理终端与所述请求终端存在长连接时;
将所述长连接确定为可用长连接。
优选地,所述处理终端与所述请求终端存在长连接,包括:
所述处理终端中包含的第一长连接模块,与所述请求终端中包含的第二长连接模块之间已经建立长连接;
则通过所述可用长连接将处理结果推送至所述请求终端,包括:
通过所述第一长连接模块与所述第二长连接模块之间已经建立的长连接,将所述处理结果推送至所述请求终端。
优选地,所述方法还包括:
当所述处理终端与所述请求终端不存在长连接时;
建立所述处理终端与所述请求终端的长连接,并确定为可用长连接。
优选地,所述处理终端为服务器,所述请求终端为客户端。
一种推送业务处理结果的装置,应用于处理终端,包括:处理单元、判断单元、确定单元以及推送单元,其中,
所述处理单元,对接收请求终端通过短连接发送的业务请求进行处理,并当业务处理超时,所述处理终端向所述请求终端返回等待指令;
所述判断单元,当判断出现业务处理超时,断开所述短连接;
所述确定单元,确定与所述请求终端之间已存在的可用长连接;
所述推送单元,当完成业务处理,通过所述可用长连接将处理结果推送至所述请求终端。
优选地,所述确定单元,
当与所述请求终端存在长连接时;
将所述长连接确定为可用长连接。
优选地,所述确定单元,
当所述处理终端中包含的第一长连接单元,与所述请求终端中包含的第二长连接单元之间存在已经建立的长连接;将所述长连接确定为可用长连接;
则所述推送单元,
通过所述第一长连接模块与所述第二长连接模块之间已经建立的长连接,将所述处理结果推送至所述请求终端。
优选地,所述确定单元,
当所述处理终端与所述请求终端不存在长连接时;
建立所述处理终端与所述请求终端的长连接,并确定为可用长连接。
一种推送业务处理结果的装置,应用于请求终端,包括:接收单元,
接收所述处理终端通过所述第一长连接模块与所述第二长连接模块之间已经建立的长连接推送的所述处理结果。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:当处理终端在对请求终端通过短连接发送的业务请求进行处理过程中出现业务处理超时,则处理终端断开该短连接,确定出一个与请求终端的可用长连接,当业务处理完成得到处理结果后,便将处理结果通过长连接推送给请求终端,相比于现有技术,避免出现请求终端需要主动与处理终端建立短连接来获取处理结果时,建立短连接产生耗时的情况,通过长连接实现了只要确定出业务结果就可以直接让请求终端得知的目的,无需等待请求终端建立短链接来再获取处理结果导致产生额外的耗时,通过缩短整个业务的耗时,提高了业务完成的效率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为现有技术的获取处理结果的示意图;
图2为基于时间轴的现有技术的获取处理结果的示意图;
图3为基于时间轴的现有技术的获取处理结果的示意图;
图4为本申请实施例1提供的推送业务处理结果的方法的流程示意图;
图5为本申请实施例1提供的通过长连接推送业务处理结果的示意图;
图6为本申请实施例1提供的通过长连接模块推送业务处理结果的示意图;
图7为本申请实施例1提供的基于时间轴的推送业务处理结果的示意图;
图8为本申请实施例2提供的推送业务处理结果的装置的结构图;
图9为本申请实施例2提供的推送业务处理结果的装置的结构图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
实施例1
如前所述,现有技术当处理终端出现处理超时,则向请求终端返回正在处理(等待)的结果或直接断开连接,此后处理终端处理业务直到处理完毕,获取到处理结果,而业务终端需要通过轮询的方式查询处理结果。如图2所示,t0时刻为请求终端与处理终端建立短连接后,处理终端接收到业务请求的时刻,从此刻开始处理业务,由于处理超时,便向请求终端返回了正在处理(等待)的结果,处理终端在t1时刻时处理完毕,得到了处理结果,此时请求终端可以立刻与处理终端建立短连接,然而建立一次短连接是需要消耗时间的,也就是消耗了t1-t2的时间,最终在t2时刻获取到处理结果。t1-t2这段时间本身并不是业务处理过程的耗时,但增加了整个业务完成过程的耗时,所以也就降低了业务完成的效率。另外,上述情况是t1时刻处理完毕后就立刻建立短连接,但是在实际应用中,不一定每次都恰巧能够在t1时刻建立连接(“步调一致”),由于是轮询,所以很可能出现“步调不一致”的情况,也就如图3所示,请求终端并没有在t1时刻建立连接,而是经过了t1-t2这段空闲时间,在t2时刻才建立连接,并在t3时刻获取到处理结果,这就进一步增加了整个业务完成过程的耗时,从而更加降低了业务完成的效率。所以基于此缺陷,本申请提供了一种推送业务处理结果的方法,用于提高互联网业务的完成效率。该方法的流程示意图如图4所示,包括下述步骤:
步骤11:处理终端对请求终端通过短连接发送的业务请求。
当用户需要请求互联网业务时,可以通过终端发送业务请求,比如查询业务、登录业务、支付业务等,这里的终端就可以是PC(personal computer,个人电脑),便携式电脑,手机等,这里统称为请求终端,即用于发送业务请求的终端。业务处理终端在接收到业务请求后,开始处理该业务。在实际应用中,业务终端(的应用程序)中可能存在很多业务,也就可以对应很多功能模块,比如,一个应用程序中,可以包含登录业务、查询业务、支付业务、即时通讯业务等,但由于长连接需要一直维护,所以大多数业务(查询业务、支付业务等)往往不会与处理终端一直保持长连接,而是需要请求业务时,与处理终端建立短连接,在处理完后断开即可。本实施例的该步骤中所指的业务就可以是不与处理终端长时间建立长连接的业务,而是仅在需要时,通过短连接与处理终端连接,也就是请求终端可以通过短连接发送业务请求。
需要说明的是,这里所说的处理终端和请求终端,隐含了处理终端中的应用程序和请求终端中的应用程序,比如,移动终端中客户端应用程)向服务器中的服务端应用程序发送查询请求,服务端应用程序接收到该请求后,处理该查询请求。
步骤12:当出现业务处理超时,断开该短连接。
可以预设超时时间阈值,比如1秒钟,当业务处理的时间超过1秒钟时,确定为业务处理超时,此时可以断开该短连接,还可以通过该短连接向请求终端发送正在处理(等待)的结果,以便请求终端了解处理情况。在处理终端确定处理超时的情况下,断开该短连接,或返回等待指令再断开该短连接。
步骤13:处理终端确定与请求终端之间的可用长连接。
在上一步骤中已经介绍,应用程序中会有很多业务,本实施例所指的业务不会与处理终端一直保持长连接,但是应用程序中可能存在与处理终端一直保持长连接的业务,比如即时通讯业务,信息推送业务等。所以本步骤,可以包括:当处理终端与请求终端存在长连接时;将该长连接确定为可用长连接。具体地,处理终端可以确定出至少一个与请求终端之间的可用长连接,比如查找到即时通讯业务与处理终端保持长连接,那么就可以将这个长连接确定为可用的长连接。这里所说的可用长连接,是指可以用于数据传输的长连接。在实际应用中,长连接可以通过专门的连接模块来实现,具体地,处理终端中可以存在一个第一长连接模块,而请求终端中可以存在一个第二长连接模块,所以本步骤可以包括:处理终端中包含的第一长连接模块,与请求终端中包含的第二长连接模块之间已经建立长连接。比如第一长连接模块与第二长连接模块,为即时通讯业务保持一个长连接,保证即时通讯业务的运行,那么此时就可以将这个长连接确定为已存在的长连接。
在实际应用中,也可能出现不存在长连接的情况,所以本步骤还可以包括:当该处理终端与该请求终端不存在长连接时;建立该处理终端与该请求终端的长连接,并确定为可用长连接。具体地,可以通过TCP(Transmission Control Protocol传输控制协议)建立长连接,或者通过HTTP(HyperText Transfer Protocol,超文本传输协议)建立长连接,比如通过HTTP 1.1进行持久连接等。
综上,本步骤提供了确定长连接的策略,即当业务处理超时,可以先查找是否存在为其他业务建立的长连接,如果存在则将该长连接在本业务处理完成后,为本业务所用,如果不存在,就去建立一个长连接,以便在本业务处理完成后,将处理结果进行推送。比如,在一个应用程序中,查询业务与处理终端中的查询系统建立短连接后,发送业务请求,如果出现业务超时,断开该短连接,查询系统查询到即时通讯系统与请求终端中的这个应用程序中的即时通讯业务保持着长连接,则将该长连接作为可用长连接;又如,查询系统查询到即时通讯系统与请求终端中的另一个应用程序中的即时通讯业务保持着长连接,如果这两个应用程序可以实现数据互传,那么也可以将该另一个应用程序中的长连接确定为可用长连接。
步骤14:当该处理终端完成业务处理后,通过该可用长连接将处理结果推送至请求终端。
在步骤13中确定出了一个可用的长连接,比如是即时通讯业务与处理终端之间的长连接,那么本步骤就可以如图5所示,通过这长连接,将处理结果推送至请求终端,推送,指的是一种基于互联网,将消息进行传输的技术,与之相对的是主动获取,这种情况下请求是由用户或终端主动发起的。也就是会监测处理结果,一旦确定出处理结果,便立刻触发将其发送至指定位置。本步骤中,当在t1时刻确定出处理记过后,就可以立刻将处理结果发送到请求终端上,免去了再次建立短连接的步骤。
上一步骤介绍了处理终端和请求终端中可以分别包含第一长连接模块和第二长连接模块来保持长连接,那么本步骤就可以包括:通过第一长连接模块与第二长连接模块之间已经建立的长连接,将处理结果推送至请求终端。具体地,可以如图6所示,当处理终端确定出处理结果后,将该处理结果推送给包含在内部的第一长连接模块,由于与请求终端内部的第二长连接模块保持有长连接,所以第一长连接模块可以将该处理结果直接推送给第二长连接模块,最终由第二长连接模块将处理结果交给请求终端,至此请求终端得到了业务的处理结果。
在实际应用中,请求终端和业务终端,是两个分离的终端,并且可以以请求终端为客户端,业务终端为服务器的形式存在。
需要说明的是,本申请实施例忽略如由于网络延迟导致长连接不通畅而影响推送到请求终端的时长、由于处理能力差导致的延时等意外耗时,也就是默认长连接处于畅通状态,得到处理结果后即可立即通过长连接传输给请求终端。
采用实施例1提供的方法,当处理终端在对请求终端通过短连接发送的业务请求进行处理过程中出现业务处理超时,则处理终端断开该短连接,确定出一个与请求终端的可用长连接,当业务处理完成得到处理结果后,便将处理结果通过长连接推送给请求终端,相比于现有技术,避免出现请求终端需要主动与处理终端建立短连接来获取处理结果时,建立短连接产生耗时的情况,也就是如图7所示,通过长连接,实现了只要确定出业务结果就可以直接让请求终端得知的目的,无需等待请求终端建立短链接来再获取处理结果导致产生额外的耗时,通过缩短整个业务的耗时,提高了业务完成的效率。
实施例2
基于相同的发明构思,实施例2提供了一种推送业务处理结果的装置,可以应用于处理终端。图8为该装置的结构图,该装置包括:处理单元21、判断单元22、确定单元23以及推送单元24,其中,
处理单元21,可以对请求终端通过短连接发送的业务请求进行处理;
判断单元22,可以当判断出现业务处理超时,断开短连接;
确定单元23,可以确定与请求终端之间的可用长连接;
推送单元24,可以当完成业务处理,通过可用长连接将处理结果推送至请求终端。
在一种实施方式中,确定单元23,可以当与请求终端存在长连接时;将长连接确定为可用长连接。
在一种实施方式中,确定单元23,可以当处理终端中包含的第一长连接单元,与请求终端中包含的第二长连接单元之间存在已经建立的长连接;将长连接确定为可用长连接;
则推送单元24,可以通过第一长连接模块与第二长连接模块之间已经建立的长连接,将处理结果推送至请求终端。
在一种实施方式中,确定单元23,可以当处理终端与请求终端不存在长连接时;建立处理终端与请求终端的长连接,并确定为可用长连接。
另外,本实施例还提供了一种推送业务处理结果的装置,可以应用于请求终端。图9为该装置的结构图,该装置包括:
接收单元31,可以接收处理终端通过第一长连接模块与第二长连接模块之间已经建立的长连接推送的处理结果。
采用实施例2提供的装置,当处理终端在对请求终端通过短连接发送的业务请求进行处理过程中出现业务处理超时,则处理终端断开该短连接,确定出一个与请求终端的可用长连接,当业务处理完成得到处理结果后,便将处理结果通过长连接推送给请求终端,相比于现有技术,避免出现请求终端需要主动与处理终端建立短连接来获取处理结果时,建立短连接产生耗时的情况,通过长连接,实现了只要确定出业务结果就可以直接让请求终端得知的目的,无需等待请求终端建立短链接来再获取处理结果导致产生额外的耗时,通过缩短整个业务的耗时,提高了业务完成的效率。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。