CN111506403A - 一种多服务处理方法及装置 - Google Patents

一种多服务处理方法及装置 Download PDF

Info

Publication number
CN111506403A
CN111506403A CN202010259017.4A CN202010259017A CN111506403A CN 111506403 A CN111506403 A CN 111506403A CN 202010259017 A CN202010259017 A CN 202010259017A CN 111506403 A CN111506403 A CN 111506403A
Authority
CN
China
Prior art keywords
service
result
waiting
services
parameter
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
Application number
CN202010259017.4A
Other languages
English (en)
Inventor
郑树锐
陈孝良
苏少炜
常乐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing SoundAI Technology Co Ltd
Original Assignee
Beijing SoundAI Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing SoundAI Technology Co Ltd filed Critical Beijing SoundAI Technology Co Ltd
Priority to CN202010259017.4A priority Critical patent/CN111506403A/zh
Publication of CN111506403A publication Critical patent/CN111506403A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本申请涉及自然语言处理技术领域,尤其涉及一种多服务处理方法及装置,发送多个服务的其中一个服务的请求,其中,除第一个发送的服务以外,每一个服务对应一个发送等待参数;所述其中一个服务的下一个服务对应的发送等待参数开始计时;若确定所述下一个服务对应的发送等待参数未超时,以及确定接收到所述其中一个服务返回的结果并确定所述结果有效,则确定输出所述结果,其中,所述结果为根据所述请求返回的结果。这样,能够提高多服务请求的处理效率,降低资源消耗。

Description

一种多服务处理方法及装置
技术领域
本申请涉及自然语言处理技术领域,尤其涉及一种多服务处理方法及装置。
背景技术
目前,自然语言处理正在快速发展过程中,不同的领域厂家能够提供不同的服务,因此,如何能够将多种服务集成在同一智能设备上,成为了一个亟待解决的问题。
现有技术中,将多种服务集成在同一智能设备上时,对于不同服务的发送和接收方式,可以分为串行方式和并行方式,串行方式节省资源,但是,当有多个服务时,后面的服务的结果返回比较延后,会带来较差的结果体验,并行方式对最终的服务的结果的返回没有明显延迟,但是比较消耗资源。
发明内容
本申请实施例提供一种多服务处理方法及装置,以提高多服务请求的处理效率,降低资源消耗。
本申请实施例提供的具体技术方案如下:
一种多服务处理方法,包括:
发送多个服务的其中一个服务的请求,其中,除第一个发送的服务以外,每一个服务对应一个发送等待参数;
所述其中一个服务的下一个服务对应的发送等待参数开始计时;
若确定所述下一个服务对应的发送等待参数未超时,以及确定接收到所述其中一个服务返回的结果并确定所述结果有效,则确定输出所述结果,其中,所述结果为根据所述请求返回的结果。
可选的,所述其中一个服务的下一个服务的发送等待参数开始计时之后,还包括:
若确定未接收到所述其中一个服务返回的结果,并所述下一个服务对应的发送等待参数超时,则发送下一个服务的请求。
可选的,发送多个服务的其中一个服务所对应的请求之后,还包括:
将所述其中一个服务的状态信息更新为已发送;
所述其中一个服务对应的等待结果参数开始计时,并监测是否接收到所述其中一个服务返回的结果,其中,每一个服务对应一个等待结果参数。
可选的,还包括:
判断所述其中一个服务的下一个服务的状态信息是否更新为已发送;
若确定所述下一个服务的状态信息更新为已发送,则所述下一个服务对应的等待结果参数开始计时;
监测所述下一个服务对应的等待结果参数是否超时;
若确定所述其中一个服务对应的等待结果参数未超时,则监测是否接收到所述其中一个服务返回的结果或所述下一个服务返回的结果。
可选的,还包括:
若确定所述其中一个服务的等待结果参数超时,且所述其中一个服务的下一个服务的等待结果参数未超时,则继续接收所述其中一个服务返回的结果。
可选的,还包括:
若确定所述其中一个服务的等待结果参数超时,且所述其中一个服务的下一个服务的等待结果参数超时,则停止接收所述其中一个服务返回的结果。
可选的,还包括:
若确定接收到所述其中一个服务返回的结果无效,则发送所述其中一个服务的下一个服务的请求。
一种多服务处理装置,包括:
第一发送模块,用于发送多个服务的其中一个服务的请求,其中,除第一个发送的服务以外,每一个服务对应一个发送等待参数;
第一计时模块,用于所述其中一个服务的下一个服务对应的发送等待参数开始计时;
第一处理模块,用于若确定所述下一个服务对应的发送等待参数未超时,以及确定接收到所述其中一个服务返回的结果并确定所述结果有效,则确定输出所述结果,其中,所述结果为根据所述请求返回的结果。
可选的,所述其中一个服务的下一个服务的发送等待参数开始计时之后,还包括:
第二发送模块,用于若确定未接收到所述其中一个服务返回的结果,并所述下一个服务对应的发送等待参数超时,则发送下一个服务的请求。
可选的,发送多个服务的其中一个服务所对应的请求之后,还包括:
更新模块,用于将所述其中一个服务的状态信息更新为已发送;
第一监测模块,用于所述其中一个服务对应的等待结果参数开始计时,并监测是否接收到所述其中一个服务返回的结果,其中,每一个服务对应一个等待结果参数。
可选的,还包括:
判断模块,用于判断所述其中一个服务的下一个服务的状态信息是否更新为已发送;
第二计时模块,用于若确定所述下一个服务的状态信息更新为已发送,则所述下一个服务对应的等待结果参数开始计时;
第二监测模块,用于监测所述下一个服务对应的等待结果参数是否超时;
第三监测模块,用于若确定所述其中一个服务对应的等待结果参数未超时,则监测是否接收到所述其中一个服务返回的结果或所述下一个服务返回的结果。
可选的,还包括:
第二处理模块,用于若确定所述其中一个服务的等待结果参数超时,且所述其中一个服务的下一个服务的等待结果参数未超时,则继续接收所述其中一个服务返回的结果。
可选的,还包括:
第三处理模块,用于若确定所述其中一个服务的等待结果参数超时,且所述其中一个服务的下一个服务的等待结果参数超时,则停止接收所述其中一个服务返回的结果。
可选的,还包括:
第三发送模块,用于若确定接收到所述其中一个服务返回的结果无效,则发送所述其中一个服务的下一个服务的请求。
一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述多服务处理方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述多服务处理方法的步骤。
本申请实施例中,发送多个服务的其中一个服务所对应的请求,其中,除第一个发送的服务以外,每一个服务对应一个发送等待参数,当其中一个服务所对应的请求发送之后,其中一个服务的下一个服务的发送等待参数开始计时,若确定下一个服务对应的发送等待参数未超时,以及确定接收到其中一个服务返回的结果并确定结果有效,则确定输出其中一个服务返回的结果,这样,为除了第一个发送的服务以外的每一个服务都设置一个对应的发送等待参数,当多服务中的其中一个服务的请求发送之后,且下一个服务对应的发送等待参数超时之后,能够及时发送下一个服务,使得多服务有较少的时延,并且不会延后后面的服务对应的结果的返回,不仅提高了多服务请求的处理效率,而且降低了资源消耗。
附图说明
图1为现有技术中串行方式的发送和接收过程;
图2为现有技术中并行方式的发送和接收过程;
图3为本申请实施例中一种多服务处理方法的流程图;
图4为本申请实施例中另一种多服务处理方法的流程图;
图5为本申请实施例中多服务处理装置的结构示意图;
图6为本申请实施例中电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,并不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,自然语言处理正在快速发展过程中,不同领域的厂家能够提供不同的服务,同时,同一个功能,会被不同的厂家实现,但是,针对某一功能,各个领域的厂家的提供的服务所给出的答案各有优劣,例如,专注于儿童教学领域的自然语言处理(natural languageprocessing,NLP)厂家,提供的结果的优势部分为儿童教学的,专注于美食领域的NLP厂家,提供的结果的优势部分会是菜谱、养生相关的,专注于股票领域的NLP厂家,提供的结果能准确的反应股市行情,还有众多的通用型的智能机器人,对于一般的问题都能给出很好的答案,因此,如何能够将多服务集成在同一智能设备上,成为了一个亟待解决的问题。
现有技术中,将多种服务集成在同一智能设备上时,对于多服务处理方式,可以分为串行方式和并行方式,其中,串行方式相较于并行方式来说更加节省资源,但是,当同一智能设备上集成多个服务时,发送请求顺序排在后面的服务的结果返回比较延后,会带来较差的用户体验,并行方式虽然对最终的服务的结果的返回没有明显延迟,但是相较于串行方式来说比较消耗资源,且对服务没有主次之分。下面以服务A、服务B和服务C为例,对现有技术中的串行方式和并行方式进行详细阐述,假设当前基于服务A、服务B和服务C构建一个统一的服务,服务A返回的结果为Result_A,服务B返回的结果为Result_B,服务C返回的结果为Result_C,该统一的服务的结果由三部分组成:Result_A,Result_B,Result_C,基于此,提前设定了选用结果的过程,具体包括:
1、判断服务A是否返回了Result_A,若是,则选用Result_A,若否,则执行下一步。
2、判断服务B是否返回了Result_B,若是,则选用Result_B,若否,则执行下一步。
3、判断服务C是否返回了Result_C,若是,则选用Result_C,若否,则执行下一步。
4、在服务A、服务B和服务C返回8的结果Result_A、Result_B和Result_C中任意选取一个结果。
由此可见,服务A、服务B和服务C之间的优先级为:服务A优于服务B,服务B优于服务C,并且,分别为服务A、服务B和服务C引入等待结果超时变量,即T_wA、T_wB、T_wC,进而可以根据服务A、服务B和服务C的优先级来设定对应的等待结果超时变量的参数,例如,可设定T_wB小于等于T_wA,并设定T_wC小于或等于T_wB,若服务B的响应时间小于服务A,则可以设定T_wB小于T_wA,类似的T_wC也要做相应的设定,下面,分别对现有技术中串行方式和并行方式对应的发送和接收过程进行详细阐述,具体如下:
参阅图1所示,为现有技术中串行方式的发送和接收过程,具体包括:
1、发送服务A的请求,等待服务A的结果。
2、服务A的结果到来,若结果为Result_A,就选用Result_A,若未接收到服务A的结果,且服务A的等待时间T_wA超时,执行下一步。
3、发送服务B的请求,并等待服务B的结果。
4、服务B的结果到来,若结果为Result_B,就选用Result_B,若未接收到服务B的结果,且服务B的等待时间T_wB超时,执行下一步。
5、发送服务C的请求,并等待服务C的结果。
6、服务C的结果到来,若结果为Result_C,就选用Result_C,若未接收到服务B的结果,且服务B的等待时间T_wC超时,执行下一步。
7、在服务A、服务B或C的结果中,任意选出一个。
由此可见,在串行方式中,发送过程和接收过程是交替进行的,也就是说,现有技术中的多服务处理的串行方式,当发送了第一个服务以后,需要确定接收到第一个服务返回的结果或者等待第一个服务的等待时间超时后,才能发送下一个服务,因此,串行方式需要先发送第一个服务,并接收到第一个服务返回的结果或等待超时之后,然后再发送下一个服务,在串行方式中,由于发送过程为主体,因此,可将现有技术中的串行方式视为只有发送过程。
参阅图2所示,为现有技术中并行方式的发送和接收过程,具体包括:
1、同时发送服务A、服务B和服务C的请求。
2、等待服务A的结果的到来,若服务A的结果到来并且结果为Result_A,就选用服务A的结果并退出;否则,等待直到T_wA超时。
3、等待服务B的结果的到来,若服务B的结果到来并且结果为Result_B,就选用服务B的结果并退出;否则,等待直到T_wB超时。
4、等待服务B的结果的到来,若服务C的结果到来并且结果为Result_C,就选用服务C的结果并退出;否则,等待直到T_wC超时。
5、在服务A、服务B或服务C的结果中,任意选出一个。
现有技术中,并行方式需要将多服务同步发送出去,然后等待各服务返回结果,也就是说,现有技术中的并行方式由于并行方式的发送只有一步,就是把各服务的请求一并全发出去,然后用多步骤的方式接收各个服务返回的结果,因此可以认为只有接收过程。
基于此,可以得出,由于现有技术中的串行方式需要等待已发送的服务返回的结果到来或者等待对应的等待参数到时,才能够发送下一个服务,因此,会延后后面发送的服务所对应的结果的返回,并且,由于现有技术中的并行方式需要通过多步骤的方式接收各个服务返回的结果,因此,会产生不必要的请求量,并且,会给各个服务带来不必要的计算量。
本申请实施例中,由于多个服务构建成一个统一的服务,在获得服务的结果时,需要获得最后统一服务的结果,因此需要对构成统一服务中的多个服务之间的处理逻辑进行设置,基于此,本申请实施例中提供了一种多服务处理方法,发送多个服务的其中一个服务所对应的请求,除第一个发送的服务以外,每一个服务对应一个发送等待参数,当发送其中一个服务所对应的请求之后,其中一个服务的下一个服务的发送等待参数开始计时,并确定其中一个服务的下一个服务的发送等待参数未超时,且确定接收到其中一个服务返回的结果并确定结果有效,则确定输出结果,这样,分别为多个服务设置发送等待参数,在下一个服务对应的发送等待参数超时之后,及时发送下一个服务,这样,后面的服务的结果返回不会延后,且能够提高多服务请求的处理效率,降低资源消耗。
基于上述实施例,参阅图3所示,为本申请实施例中一种多服务处理方法的流程图,本申请实施例中的多服务处理方法的执行主体并不进行限定,例如可以应用于智能设备、服务器等,下面以应用于智能设备为例,为本申请实施例中一种多服务处理方法,具体包括:
步骤300:发送多个服务的其中一个服务的请求。
其中,除第一个发送的服务以外,每一个服务对应一个发送等待参数。
具体地,本申请实施例中的多个服务的其中一个服务为任意的一个服务,可以是第一个服务,也可以是第二个服务,本申请实施例中对此并不进行限制。
本申请实施例中的方法,可以应用于自然语言处理领域,当计算机系统模仿一个自然人输入话语,作为服务的请求发送给服务器后,服务器可以返回结果,即输出对应的话语。
本申请实施例中,除了第一个发送的服务以外,还为每一个服务设置对应一个发送等待参数,这样,在发送的过程中,当发送其中一个服务对应的请求之后,其中一个服务的下一个服务对应的发送等待参数就开始计时,当其中一个服务的下一个服务对应的发送等待参数超时的时候,就发送下一个服务,这样,通过设置发送等待参数,能够避免延后后面的服务对应的结果的返回,节约了计算机资源。
其中,发送等待参数是为除了第一个发送的服务以外,为其它每一个服务设置的,发送等待参数表示对应的服务需要被发送时的所要等待的时间,当其中一个服务的请求发送之后,下一个服务的发送等待参数开始计时,当下一个服务所对应的发送等待参数超时后,则发送下一个服务的请求,因此,下一个服务的发送等待参数为发送其中一个服务的请求开始,到预设的时间结束所对应的这段时间,例如,假设其中一个服务为服务A,服务A的下一个服务为服务B,服务B对应的发送等待参数为5秒,则当服务A的请求发送之后,服务B对应的发送等待参数开始计时,由于预设的服务B的发送等待参数为5秒,因此经过5秒后,服务B对应的发送等待参数到时,此时,发送服务B的请求。
本申请实施例中,可以根据实际需求设置各服务的发送等待参数,例如,可以根据服务的实际响应时间、优先级程度和用户需求等,对发送等待参数进行设置,但是,由于第一个发送的服务的请求为最先发送的,因此,多服务中的第一个服务的请求无需等待发送,可直接发送第一个服务的请求,因此,不需要为第一个服务设置发送等待参数,本申请实施例中,为第一个服务后面的各个服务设置发送等待参数,也就是说,除了第一个发送的服务以外,为每一个服务设置对应一个发送等待参数,并且,由于各个服务的实际响应时间不一定相同,因此可以根据实际需求设置发送等待参数,例如,可根据各服务的实际响应时间设置发送等待参数,例如,第一个发送的服务的实际响应时间较长,则可将第二个发送的服务对应的发送等待参数设置为10秒,第二个发送的服务的实际响应时间较短,则可将第三个发送的服务对应的发送等待参数设置为3秒,还可以根据服务的优先级程度、用户需求等因素,对发送等待参数进行设置,本申请实施例中对此并不进行限制。
步骤310:其中一个服务的下一个服务的发送等待参数开始计时。
本申请实施例中,当多服务的其中一个服务对应的请求发送之后,其中一个服务的下一个服务的对应的发送等待参数开始计时,在下一个服务对应的发送等待参数超时后,则发送下一个服务对应的请求。
步骤320:若确定下一个服务对应的发送等待参数未超时,以及确定接收到其中一个服务返回的结果并确定结果有效,则确定输出结果。
其中,结果为根据请求返回的结果。
本申请实施例中,当下一个服务对应的发送等待参数开始计时后,此时需要监测下一个服务对应的发送等待参数是否超时,若确定超时,则发送下一个服务的请求,则本申请实施例中,发送多个服务中的其中一个服务的请求之后,进一步包括:
S1:将其中一个服务的状态信息更新为已发送。
本申请实施例中,当发送多个服务的其中一个服务的请求之后,则将其中一个服务的状态信息更新为已发送,例如,可将其中一个服务的状态信息对应的状态标识修改为已发送,本申请实施例中对此并不进行限制。
S2:其中一个服务对应的等待结果参数开始计时,并监测是否接收到其中一个服务返回的结果。
其中,每一个服务对应一个等待结果参数。
本申请实施例中,当发送多个服务的其中一个服务的请求以后,将该其中一个服务的状态信息更新为已发送,此时,其中一个服务对应的等待结果参数开始计时,并监测是否接收到其中一个服务返回的结果。
其中,等待结果参数为当其中一个服务对应的请求发送之后,到预设时间结束所对应的这段时间,因此,当其中一个服务的请求发送之后,其中一个服务所对应的等待结果参数开始计时,此时,其中一个服务开始等待结果的到来,例如,假设其中一个服务为服务A,服务A对应的等待结果参数为5秒,则当服务A的请求发送之后,服务A对应的等待结果参数开始计时,由于预设的服务A的发送等待参数为5秒,因此经过5秒后,服务A对应的等待结果参数到时。
其中,可以根据实际需求设置各服务对应的等待结果参数,例如,可以根据服务的实际响应时间、优先级程度和用户需求等,对发送等待参数进行设置,下面以服务的优先级程度为例,对设置等待结果参数进行详细阐述,假设第二个服务的优先级高于第一个服务,则可将第一个服务对应的等待结果参数T_wA设置为1秒,将第二个服务对应的等待结果参数T_wB设置为5秒,这样,由于第二个服务的优先级高于第一个服务的优先级,则第二个服务对应的等待结果参数大于第一个服务对应的等待结果参数,这样,根据各个服务的优先级设置各个服务对应的等待结果参数,能够在接收根据各服务发送的请求所返回的结果时,延长优先级高的服务对应的等待返回结果的时间,能够提高结果的正确性,本申请实施例中对此并不进行限制。
进一步地,当多个服务的其中一个服务所对应的请求发送之后,则其中一个服务的等待结果参数开始计时,此时,开始等待接收其中一个服务返回的结果。
其中,本申请实施例中的等待结果参数为预先设置的,由于各个服务的实际响应时间不确定,因此,需要设置等待结果参数,例如,将第一个服务的等待结果参数设置为5秒,将第二个服务对应的等待结果参数设置为2秒,这样,在接收过程中,当发送了第二个服务的请求之后,由于第一个服务对应的等待结果参数还未超时,则此时在等待接收第二个服务返回的结果时,还可以继续等待接收第一个服务返回的结果,这样,重复等待接收等待结果参数还未超时的服务的结果,能够提高结果的正确性,本申请实施例中对等待结果参数的设置并不进行限制。
本发明通过设置各个服务的发送请求的等待时间,来调节各服务的串并关系,从而在资源消耗和结果时延上找到一个平衡,通过设置各服务独立的等待结果参数,能够保证优先服务的选取,确保了结果的正确性,这样,持续等待接收等待结果参数还未超时的服务的结果,目的是在有限的时间内尽可能等待优先级高的服务返回的结果,提高结果的正确性,并且,当其中一个服务的等待结果参数,以及其中一个服务的下一个服务的等待结果参数均超时之后,停止接收其中一个服务返回的结果,能够避免资源浪费,通过本申请实施例中的方法,不仅能够确保结果时延,还能够提高结果的正确性。
本申请实施例中,在监测是否接收到其中一个服务返回的结果时,具体包括以下三种不同的情况。
第一种情况:未接收到其中一个服务返回的结果,并下一个服务对应的发送等待参数超时。
则具体包括:若确定未接收到其中一个服务返回的结果,并下一个服务对应的发送等待参数超时,则发送下一个服务的请求。
具体地,在等待其中一个服务的下一个服务的发送等待参数超时的过程中,会一直等待下一个服务对应的发送等待参数超时,在此等待的过程中,可以一直等待接收其中一个服务返回的结果,若其中一个服务的下一个服务的发送等待参数超时后,且在等待过程中一直未接收到服务返回的结果,则发送下一个服务的请求。
例如,假设服务B的等待发送参数超时,且在等待过程中,一直未接收到服务A返回的结果,则发送服务B的请求。
其中,在发送其中一个服务的请求的过程中,发送等待参数是根据实际需求设置的,一般来说,各服务的实际响应时间不会是固定不变的,各服务的发送的请求不同,处理的逻辑也不相同,再加上网络原因,更加使得各服务的实际响应时间更不可控制,因此,当各服务的实际响应时间较分散时,通过本申请实施例中的方法,能够使得系统的响应时间有较大的改善,同时只引入了少量的资源消耗。
第二种情况:接收到其中一个服务返回的结果,且结果有效。
则具体包括:若确定下一个服务对应的发送等待参数未超时,以及确定接收到其中一个服务返回的结果并确定结果有效,则确定输出结果。
本申请实施例中,在监测下一个服务的发送等待参数是否超时的过程中,若确定下一个服务对应的发送等待参数未超时,以及接收到其中一个服务返回的结果并确定该接收到的结果有效,则确定输出该结果。
第三种情况:接收到其中一个服务返回的结果,但结果无效。
本申请实施例中,当接收到其中一个服务返回的结果之后,需要判断所接收到的结果是否有效,然后再判断是否能够输出该接收到的结果,则具体包括:
若确定接收到其中一个服务返回的结果无效,则发送其中一个服务的下一个服务的请求。
本申请实施例中,在监测下一个服务对应的发送等待超时的过程中,若确定接收到其中一个服务返回的结果,但是,判断该接收到的结果无效,此时,则将接收到的结果丢弃,并发送其中一个服务的下一个服务的请求。
本申请实施例中,在发送了下一个服务以后,具体包括:
S1:判断其中一个服务的下一个服务的状态信息是否更新为已发送。
本申请实施例中,当发送了下一个服务以后,将下一个服务的状态信息更新为已发送,例如,当发送了服务B的请求以后,将服务B的状态信息更新为已发送,本申请实施例中对此并不进行限制。
S2:若确定下一个服务的状态信息更新为已发送,则下一个服务对应的等待结果参数开始计时。
若确定其中一个服务的下一个服务的状态信息更新为已发送,则其中一个服务的下一个服务的等待结果参数开始计时,此时开始监测下一个服务的等待结果参数是否超时。
S3:监测下一个服务对应的等待结果参数是否超时。
S4:若确定其中一个服务对应的等待结果参数未超时,则监测是否接收到其中一个服务返回的结果或下一个服务返回的结果。
本申请实施例中,在等待其中一个服务的等待结果参数超时的过程中,监测是否能够接收到其中一个服务返回的结果或其中一个服务的下一个服务返回的结果,这样,重复等待已发送的服务的结果,可以有效解决现有技术下的串行方式中,若发送了第二个服务的请求后,则无法接收第一个服务返回的结果的问题,这样,能够提升结果的正确性。
进一步地,在监测下一个服务对应的等待结果参数是否超时的时候,若确定等待结果参数超时,具体包括以下两种情况:
第一种情况:其中一个服务的下一个服务的等待结果参数未超时。
则具体包括:若确定其中一个服务的等待结果参数超时,且其中一个服务的下一个服务的等待结果参数未超时,则继续接收其中一个服务返回的结果。
本申请实施例中,若确定其中一个服务的等待结果参数超时,但是其中一个服务的下一个服务的等待结果参数未超时,则为了保证接收到结果的正确性,还能够继续接收其中一个服务返回的结果,直到其中一个服务的下一个服务的等待结果参数超时之后,才停止接收其中一个服务返回的结果,例如,假设服务A对应的等待结果参数为3秒,服务B对应的等待结果参数为5秒,则当服务B对应的请求发送之后,服务B对应的等待结果参数开始计时,由于服务B对应的等待结果参数比服务A对应的等待结果参数时间长,有可能会出现,服务A对应的等待结果参数超时,但是服务B的请求对应返回的结果还没到来的时候,停止接收服务A对应返回的结果出现,但是由于服务A返回的结果准确率较高,因此,丢弃服务A返回的结果也是不合理的,会影响结果的准确率,因此,本申请实施例中,在接收和选取结果的过程中,当服务A对应的等待结果参数超时后,而服务B对应的等待结果参数未超时的情况下,继续等待服务A返回的结果,直到服务B对应的等待结果参数超时,则停止接收服务A返回的结果,这样,重复等待已经等待超时了的服务的结果,能够实现在不增加等待结果参数的情况下,提升结果的正确性。
第二种情况:其中一个服务的下一个服务的等待结果参数超时。
则具体包括:若确定其中一个服务的等待结果参数超时,且其中一个服务的下一个服务的等待结果参数超时,则停止接收其中一个服务返回的结果。
本申请实施例中,当其中一个服务的下一个服务的等待结果参数也超时的情况下,则停止接收其中一个服务返回的结果,例如,当发送服务B的请求之后,则服务B的等待结果参数开始计时,若此时服务A对应的等待结果参数超时,并且服务B对应的等待结果参数也超时,则此时停止接收服务A返回的结果,这样,根据实际需求设置对应的等待结果参数,可以减少计算机资源消耗,有效防止因各服务等待结果的时间过长,进而长期等待接收各服务返回的结果,造成资源浪费。
本申请实施例中的方法是串行过程,并行过程的超集,串行过程通过调整除了第一个服务以外的每个服务的发送等待参数,来使本申请实施例中的方法更倾向于并行过程,还是串行过程,当除了第一个发送的服务以外的每个服务的发送等待参数均为0,此时可以视为并行过程,当除了第一个发送的服务以外的每个服务的发送等待参数逐步变大时,会使本申请实施例中的方法更加倾向于串行过程,当其中一个服务的发送等待参数和上一个服务的等待结果参数相等,且其中一个服务的下一个服务的发送等待参数和其中一个服务的等待结果参数相等时,本申请实施例中的方法就演变成了串行过程,基于此,本申请实施例中提供了一种多服务处理方法,发送多个服务的其中一个服务的请求,除第一个服务以外,每一个服务对应一个发送等待参数,其中一个服务的下一个服务对应的发送等待参数开始计时,若确定下一个服务对应的发送等待参数未超时,以及确定接收到其中一个服务返回的结果并确定结果有效,则确定输出结果,并且,还为每一个服务设置一个等待结果参数,这样,在发送请求的过程中,设置发送等待参数,能够尽可能达到并行发送的效果,这样,对于后面的服务的结果的返回没有延迟,还能够减少总体的时延,在接收结果的过程中,设置等待结果参数,能够节省资源,减少过多的请求量,降低各服务的计算量。
基于上述实施例,下面以服务A、服务B和服务C为例,对本申请实施例中的多服务处理方法进行详细阐述,参阅图4所示,为本申请实施例中另一种多服务处理方法的流程图。
步骤400:发送服务A对应的请求,并将服务A的状态信息更新为已发送。
步骤401:服务B的发送等待参数开始计时。
步骤402:判断服务B的发送等待参数是否超时,若是,则执行步骤407,若否,则执行步骤403。
步骤403:判断服务A的状态信息是否更新为已发送,若是,则执行步骤404,若否,则重新执行步骤400。
步骤404:服务A对应的等待结果参数开始计时,并监测是否接收到服务A返回的结果,若是,则执行步骤405,若否,则重新执行步骤403。
步骤405:判断服务A的结果是否有效,若是,则执行步骤406,若否,则执行步骤407。
步骤406:输出服务A的结果。
步骤407:发送服务B对应的请求,并将服务B的状态信息更新为已发送。
步骤408:服务C的发送等待参数开始计时。
步骤409:判断服务C的发送等待参数是否超时,若是,则执行步骤424,若否,则执行步骤410。
步骤410:判断服务B的状态信息是否更新为已发送,若是,则执行步骤411,若否,则重新执行步骤407。
步骤411:服务B对应的等待结果参数开始计时。
步骤412:监测服务A对应的等待结果参数是否超时,若是,则执行步骤414,若否,则执行步骤415。
步骤413:监测服务B对应的等待结果参数是否超时,若是,则执行步骤423,若否,则执行步骤416。
本申请实施例中,步骤412和步骤413可以同时进行。
步骤414:停止接收服务A返回的结果。
步骤415:判断是否接收到服务A返回的结果,若是,则执行步骤416,若否,则重新执行步骤415。
步骤416:判断服务A的结果是否有效,若是,则执行步骤419,若否,则执行步骤420。
步骤417:判断是否接收到服务B返回的结果,若是,则执行步骤418,若否,则重新执行步骤417。
步骤418:判断服务B的结果是否有效,若是,则执行步骤421,若否,则执行步骤422。
步骤419:输出服务A的结果。
步骤420:丢弃服务A的结果。
步骤421:输出服务B的结果。
步骤422:丢弃服务B的结果。
步骤423:停止接收服务B返回的结果。
步骤424:发送服务C对应的请求,并将服务C的状态信息更新为已发送。
本申请实施例中,分别为服务B和服务C设置对应的发送等待参数,这样,当发送等待参数到时后,可以及时发送下一个服务,节约了资源,并且,分别为服务A、服务B和服务C设置了对应的等待结果参数,这样,能够减少时延。
基于同一发明构思,本申请实施例中提供了多服务处理装置,该多服务处理装置可以是硬件结构、软件模块、或硬件结构加软件模块。基于上述实施例,参阅图5所示,为本申请实施例中多服务处理装置的结构示意图,具体包括:
第一发送模块500,用于发送多个服务的其中一个服务的请求,其中,除第一个发送的服务以外,每一个服务对应一个发送等待参数;
第一计时模块501,用于所述其中一个服务的下一个服务对应的发送等待参数开始计时;
第一处理模块502,用于若确定所述下一个服务对应的发送等待参数未超时,以及确定接收到所述其中一个服务返回的结果并确定所述结果有效,则确定输出所述结果,其中,所述结果为根据所述请求返回的结果。
可选的,所述其中一个服务的下一个服务的发送等待参数开始计时之后,还包括:
第二发送模块503,用于若确定未接收到所述其中一个服务返回的结果,并所述下一个服务对应的发送等待参数超时,则发送下一个服务的请求。
可选的,发送多个服务的其中一个服务所对应的请求之后,还包括:
更新模块504,用于将所述其中一个服务的状态信息更新为已发送;
第一监测模块505,用于所述其中一个服务对应的等待结果参数开始计时,并监测是否接收到所述其中一个服务返回的结果,其中,每一个服务对应一个等待结果参数。
可选的,还包括:
判断模块506,用于判断所述其中一个服务的下一个服务的状态信息是否更新为已发送;
第二计时模块507,用于若确定所述下一个服务的状态信息更新为已发送,则所述下一个服务对应的等待结果参数开始计时;
第二监测模块508,用于监测所述下一个服务对应的等待结果参数是否超时;
第三监测模块509,用于若确定所述其中一个服务对应的等待结果参数未超时,则监测是否接收到所述其中一个服务返回的结果或所述下一个服务返回的结果。
可选的,还包括:
第二处理模块510,用于若确定所述其中一个服务的等待结果参数超时,且所述其中一个服务的下一个服务的等待结果参数未超时,则继续接收所述其中一个服务返回的结果。
可选的,还包括:
第三处理模块511,用于若确定所述其中一个服务的等待结果参数超时,且所述其中一个服务的下一个服务的等待结果参数超时,则停止接收所述其中一个服务返回的结果。
可选的,还包括:
第三发送模块512,用于若确定接收到所述其中一个服务返回的结果无效,则发送所述其中一个服务的下一个服务的请求。
基于上述实施例,参阅图6所示为本申请实施例中电子设备的结构示意图。
本申请实施例提供了一种电子设备,该电子设备可以包括处理器610(CenterProcessing Unit,CPU)、存储器620、输入设备630和输出设备640等,输入设备630可以包括键盘、鼠标、触摸屏等,输出设备640可以包括显示设备,如液晶显示器(Liquid CrystalDisplay,LCD)、阴极射线管(Cathode Ray Tube,CRT)等。
存储器620可以包括只读存储器(ROM)和随机存取存储器(RAM),并向处理器610提供存储器620中存储的程序指令和数据。在本申请实施例中,存储器620可以用于存储本申请实施例中任一种多服务处理方法的程序。
处理器610通过调用存储器620存储的程序指令,处理器610用于按照获得的程序指令执行本申请实施例中任一种多服务处理方法。
基于上述实施例,本申请实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意方法实施例中的多服务处理方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种多服务处理方法,其特征在于,包括:
发送多个服务的其中一个服务的请求,其中,除第一个发送的服务以外,每一个服务对应一个发送等待参数,所述发送等待参数表征下一个服务等待的时间;
所述其中一个服务的下一个服务对应的发送等待参数开始计时;
若确定所述下一个服务对应的发送等待参数未超时,以及确定接收到所述其中一个服务返回的结果并确定所述结果有效,则确定输出所述结果,其中,所述结果为根据所述请求返回的结果。
2.如权利要求1所述的方法,其特征在于,所述其中一个服务的下一个服务的发送等待参数开始计时之后,还包括:
若确定未接收到所述其中一个服务返回的结果,并所述下一个服务对应的发送等待参数超时,则发送下一个服务的请求。
3.如权利要求1所述的方法,其特征在于,发送多个服务的其中一个服务所对应的请求之后,还包括:
将所述其中一个服务的状态信息更新为已发送;
所述其中一个服务对应的等待结果参数开始计时,并监测是否接收到所述其中一个服务返回的结果,其中,每一个服务对应一个等待结果参数。
4.如权利要求2所述的方法,其特征在于,还包括:
判断所述其中一个服务的下一个服务的状态信息是否更新为已发送;
若确定所述下一个服务的状态信息更新为已发送,则所述下一个服务对应的等待结果参数开始计时;
监测所述下一个服务对应的等待结果参数是否超时;
若确定所述其中一个服务对应的等待结果参数未超时,则监测是否接收到所述其中一个服务返回的结果或所述下一个服务返回的结果。
5.如权利要求3所述的方法,其特征在于,还包括:
若确定所述其中一个服务的等待结果参数超时,且所述其中一个服务的下一个服务的等待结果参数未超时,则继续接收所述其中一个服务返回的结果。
6.如权利要求5所述的方法,其特征在于,还包括:
若确定所述其中一个服务的等待结果参数超时,且所述其中一个服务的下一个服务的等待结果参数超时,则停止接收所述其中一个服务返回的结果。
7.如权利要求1所述的方法,其特征在于,还包括:
若确定接收到所述其中一个服务返回的结果无效,则发送所述其中一个服务的下一个服务的请求。
8.一种多服务处理装置,其特征在于,包括:
第一发送模块,用于发送多个服务的其中一个服务的请求,其中,除第一个发送的服务以外,每一个服务对应一个发送等待参数;
第一计时模块,用于所述其中一个服务的下一个服务对应的发送等待参数开始计时;
第一处理模块,用于若确定所述下一个服务对应的发送等待参数未超时,以及确定接收到所述其中一个服务返回的结果并确定所述结果有效,则确定输出所述结果,其中,所述结果为根据所述请求返回的结果。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1-7任一项所述方法的步骤。
CN202010259017.4A 2020-04-03 2020-04-03 一种多服务处理方法及装置 Pending CN111506403A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010259017.4A CN111506403A (zh) 2020-04-03 2020-04-03 一种多服务处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010259017.4A CN111506403A (zh) 2020-04-03 2020-04-03 一种多服务处理方法及装置

Publications (1)

Publication Number Publication Date
CN111506403A true CN111506403A (zh) 2020-08-07

Family

ID=71864095

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010259017.4A Pending CN111506403A (zh) 2020-04-03 2020-04-03 一种多服务处理方法及装置

Country Status (1)

Country Link
CN (1) CN111506403A (zh)

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103150238A (zh) * 2011-12-07 2013-06-12 阿里巴巴集团控股有限公司 一种服务请求处理方法、模拟性能测试方法及装置
CN103729247A (zh) * 2012-10-12 2014-04-16 阿里巴巴集团控股有限公司 数据获取请求的处理方法、系统及服务器
CN104618429A (zh) * 2014-12-23 2015-05-13 华为技术有限公司 一种信息交互的方法及装置
US20160128059A1 (en) * 2014-10-31 2016-05-05 Theplatform, Llc Methods And Systems For Communication Management
CN106936867A (zh) * 2015-12-29 2017-07-07 阿里巴巴集团控股有限公司 一种业务请求的响应方法及装置
CN107172171A (zh) * 2017-05-27 2017-09-15 腾讯科技(深圳)有限公司 一种服务请求处理方法、装置及计算机可读存储介质
CN107391268A (zh) * 2016-05-17 2017-11-24 阿里巴巴集团控股有限公司 服务请求处理方法及装置
CN107888634A (zh) * 2016-09-29 2018-04-06 北京金山云网络技术有限公司 一种分布式存储系统的数据请求方法及装置
CN107943577A (zh) * 2016-10-12 2018-04-20 百度在线网络技术(北京)有限公司 用于调度任务的方法和装置
CN108566346A (zh) * 2018-03-14 2018-09-21 阿里巴巴集团控股有限公司 网络请求的处理方法及装置
CN109117280A (zh) * 2018-06-29 2019-01-01 Oppo(重庆)智能科技有限公司 电子装置及其限制进程间通信的方法、存储介质
CN109246033A (zh) * 2018-09-19 2019-01-18 郑州云海信息技术有限公司 一种请求处理方法、装置、设备及可读存储介质
CN109784659A (zh) * 2018-12-18 2019-05-21 东软集团股份有限公司 服务请求的处理方法、装置、存储介质及电子设备
CN110138837A (zh) * 2019-04-15 2019-08-16 平安科技(深圳)有限公司 请求处理方法、装置、计算机设备和存储介质
CN110458710A (zh) * 2019-07-02 2019-11-15 平安科技(深圳)有限公司 请求处理方法、装置、计算机设备和存储介质

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103150238A (zh) * 2011-12-07 2013-06-12 阿里巴巴集团控股有限公司 一种服务请求处理方法、模拟性能测试方法及装置
CN103729247A (zh) * 2012-10-12 2014-04-16 阿里巴巴集团控股有限公司 数据获取请求的处理方法、系统及服务器
US20160128059A1 (en) * 2014-10-31 2016-05-05 Theplatform, Llc Methods And Systems For Communication Management
CN104618429A (zh) * 2014-12-23 2015-05-13 华为技术有限公司 一种信息交互的方法及装置
CN106936867A (zh) * 2015-12-29 2017-07-07 阿里巴巴集团控股有限公司 一种业务请求的响应方法及装置
CN107391268A (zh) * 2016-05-17 2017-11-24 阿里巴巴集团控股有限公司 服务请求处理方法及装置
CN107888634A (zh) * 2016-09-29 2018-04-06 北京金山云网络技术有限公司 一种分布式存储系统的数据请求方法及装置
CN107943577A (zh) * 2016-10-12 2018-04-20 百度在线网络技术(北京)有限公司 用于调度任务的方法和装置
CN107172171A (zh) * 2017-05-27 2017-09-15 腾讯科技(深圳)有限公司 一种服务请求处理方法、装置及计算机可读存储介质
CN108566346A (zh) * 2018-03-14 2018-09-21 阿里巴巴集团控股有限公司 网络请求的处理方法及装置
CN109117280A (zh) * 2018-06-29 2019-01-01 Oppo(重庆)智能科技有限公司 电子装置及其限制进程间通信的方法、存储介质
CN109246033A (zh) * 2018-09-19 2019-01-18 郑州云海信息技术有限公司 一种请求处理方法、装置、设备及可读存储介质
CN109784659A (zh) * 2018-12-18 2019-05-21 东软集团股份有限公司 服务请求的处理方法、装置、存储介质及电子设备
CN110138837A (zh) * 2019-04-15 2019-08-16 平安科技(深圳)有限公司 请求处理方法、装置、计算机设备和存储介质
CN110458710A (zh) * 2019-07-02 2019-11-15 平安科技(深圳)有限公司 请求处理方法、装置、计算机设备和存储介质

Similar Documents

Publication Publication Date Title
WO2019237586A1 (zh) 定时任务管理方法、装置、计算机设备及存储介质
US20220413927A1 (en) Background Job Processing Framework
CN109656782A (zh) 可视化调度监控方法、装置及服务器
US11095531B2 (en) Service-aware serverless cloud computing system
CN109858655B (zh) 预约测试的方法及系统
US20220083375A1 (en) Method and apparatus for scheduling task processing entity
CN107294911B (zh) 一种数据包监听方法及装置、远程过程调用系统、设备
CN113515366B (zh) 一种总线负载均衡处理方法、装置及存储介质
CN108509264B (zh) 超时任务调度系统及方法
CN111506403A (zh) 一种多服务处理方法及装置
CN110290139B (zh) 消息传输方法及装置
CN112448977A (zh) 分配任务的系统、方法、设备和计算机可读介质
EP3429261B1 (en) Non-blocking request processing method and device
CN113242149B (zh) 长连接配置方法、装置、设备、存储介质和程序产品
CN115361382A (zh) 基于数据群组的数据处理方法、装置、设备和存储介质
CN114915516A (zh) 一种通信方法及装置
CN113965563A (zh) 基于模型的业务处理方法及装置、服务器
CN114172940B (zh) 烹饪设备的控制方法及装置、存储介质、终端
CN113326116A (zh) 一种数据处理方法和系统
CN117130786A (zh) 资源分配方法、装置、设备和可读介质
CN117093343A (zh) 一种异步任务执行控制方法、装置、设备及存储介质
CN117651071A (zh) 数据接收方法、装置、存储介质及电子装置
CN118250313A (zh) 目标设备监控方法、物联网系统、电子设备和存储介质
CN116225638A (zh) 一种客户端网络任务调度方法、系统、设备及存储介质
CN117573777A (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