CN110008010A - 系统调用方法、装置、设备及可读存储介质 - Google Patents
系统调用方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN110008010A CN110008010A CN201910137197.6A CN201910137197A CN110008010A CN 110008010 A CN110008010 A CN 110008010A CN 201910137197 A CN201910137197 A CN 201910137197A CN 110008010 A CN110008010 A CN 110008010A
- Authority
- CN
- China
- Prior art keywords
- processing
- interface
- calling
- processing result
- timer
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明公开了一种系统调用方法、装置、设备及可读存储介质,涉及互联网技术领域,可以仅在超时的情境下才调用定时调度器,节省了定时调度器的大量资源,降低了系统调用。所述方法包括:向第二系统发送处理请求,统计等待第二系统返回处理结果的等待时长;当检测到等待时长大于超时阈值时,向定时调度器注册定时任务,并向上游返回失败响应,定时任务至少包括预设时间和恢复接口;接收定时调度器在经过了预设时间后对恢复接口的调用,基于恢复接口调用第二系统的查询接口,由第二系统查询并返回处理结果;如果接收到的处理结果指示调用成功,则调用第二系统的反向接口,基于反向接口调用第二系统将处理结果对应的恢复数据撤回。
Description
技术领域
本发明涉及互联网技术领域,特别是涉及一种系统调用方法及装置。
背景技术
随着互联网技术的飞速发展,很多软件应运而生,且成为人们生活和工作中必不可少的一部分。软件通常由其搭载的软件系统支持运行,而大型的软件系统由于其内部逻辑纷繁复杂,在实施开发的过程中,往往会按照高聚合低耦合的原则分成多个完成特定功能的子系统,使得一次业务的处理往往需要通过多个子系统之间的相互调用以及分工合作才能达到期望的结果,以扫码支付为例,商家在成功扫描用户的支付码之后,后台牵涉的子系统包括解码子系统、用户校验子系统、协议校验子系统等等。由于一次业务处理涉及的子系统较多,因此,很容易发生调用系统超时的问题,导致当前被调用的子系统不能获知下一个子系统的结果,且又不能在短时间内向上游返回结果。
相关技术中,当前被调用子系统在被调用时立刻向定时调度器注册定时回调任务,然后再继续调用下一个子系统,如果在调用下一个子系统时发生了超时问题,则向上游返回失败响应,并等待定时调度器进行回调。
在实现本发明的过程中,发明人发现相关技术至少存在以下问题:
当前被调用的子系统在每次被调用时都会向定时调度器注册定时回调任务,使得不管后续对下一个子系统的调用是否超时,都需要处理回调任务,浪费了定时调度器的大量资源,提高了系统调用的成本。
发明内容
有鉴于此,本发明提供了一种系统调用方法、装置、设备及可读存储介质,主要目的在于解决目前浪费了定时调度器的大量资源,提高了系统调用的成本的问题。
依据本发明第一方面,提供了一种系统调用方法,该方法包括:
向第二系统发送处理请求,统计等待所述第二系统返回处理结果的等待时长;
当检测到所述等待时长大于超时阈值时,向定时调度器注册定时任务,并向上游返回失败响应,所述定时任务至少包括预设时间和恢复接口;
接收所述定时调度器在经过了所述预设时间后对所述恢复接口的调用,基于所述恢复接口调用所述第二系统的查询接口,由所述第二系统查询并返回所述处理结果;
如果接收到的所述处理结果指示调用成功,则调用所述第二系统的反向接口,基于所述反向接口调用所述第二系统将所述处理结果对应的恢复数据撤回。
在另一个实施例中,所述向第二系统发送处理请求,统计等待所述第二系统返回处理结果的等待时长之前,包括:
接收所述上游下发的处理任务,基于内部逻辑对所述处理任务进行处理;
当检测到所述处理任务完成处理时,生成所述处理请求。
在另一个实施例中,所述接收所述定时调度器在经过了所述预设时间后对所述恢复接口的调用,基于所述恢复接口调用所述第二系统的查询接口,查询所述处理结果之后,所述方法还包括:
如果接收到的所述处理结果指示调用失败,则结束当前流程。
依据本发明第二方面,提供了一种系统调用方法,该方法包括:
接收第一系统注册的定时任务,所述定时任务由所述第一系统在检测到第二系统回复超时时请求注册,所述定时任务至少包括预设时间和恢复接口;
确定所述定时任务完成注册的注册时间,统计从所述注册时间开始的经过时长;
当所述经过时长等于所述预设时间时,对所述恢复接口进行调用,由所述第一系统基于所述恢复接口的调用向第二系统查询处理结果。
依据本发明第三方面,提供了一种系统调用方法,该方法包括:
接收第一系统发送的处理请求,对所述处理请求进行处理;
当检测到所述第一系统基于恢复接口调用查询接口时,基于所述查询接口查询处理结果,并将所述查询结果返回至所述第一系统,所述恢复接口由所述第一系统在检测到第二系统回复超时时请求调用,所述处理结果为所述处理请求对应的结果;
当接收到所述第一系统对反向接口的调用时,基于所述第一系统的调用,将所述处理结果对应的恢复数据撤回。
在另一个实施例中,所述接收第一系统发送的处理请求,对所述处理请求进行处理之后,包括:
当完成对所述处理请求的处理时,生成所述处理结果,将所述处理结果返回至所述第一系统;
继续接收所述第一系统发送的其他处理请求并进行处理。
依据本发明第四方面,提供了一种系统调用装置,该装置包括:
统计模块,用于向第二系统发送处理请求,统计等待所述第二系统返回处理结果的等待时长;
注册模块,用于当检测到所述等待时长大于超时阈值时,向定时调度器注册定时任务,并向上游返回失败响应,所述定时任务至少包括预设时间和恢复接口;
第一调用模块,用于接收所述定时调度器在经过了所述预设时间后对所述恢复接口的调用,基于所述恢复接口调用所述第二系统的查询接口,由所述第二系统查询并返回所述处理结果;
第二调用模块,用于如果接收到的所述处理结果指示调用成功,则调用所述第二系统的反向接口,基于所述反向接口调用所述第二系统将所述处理结果对应的恢复数据撤回。
在另一个实施例中,所述装置包括:
处理模块,用于接收所述上游下发的处理任务,基于内部逻辑对所述处理任务进行处理;
生成模块,用于当检测到所述处理任务完成处理时,生成所述处理请求。
在另一个实施例中,所述装置还包括:
结束模块,用于如果接收到的所述处理结果指示调用失败,则结束当前流程。
依据本发明第五方面,提供了一种系统调用装置,该装置包括:
接收模块,用于接收第一系统注册的定时任务,所述定时任务由所述第一系统在检测到第二系统回复超时时请求注册,所述定时任务至少包括预设时间和恢复接口;
统计模块,用于确定所述定时任务完成注册的注册时间,统计从所述注册时间开始的经过时长;
调用模块,用于当所述经过时长等于所述预设时间时,对所述恢复接口进行调用,由所述第一系统基于所述恢复接口的调用向第二系统查询处理结果。
依据本发明第六方面,提供了一种系统调用装置,该装置包括:
接收模块,用于接收第一系统发送的处理请求,对所述处理请求进行处理;
返回模块,用于当检测到所述第一系统基于恢复接口调用查询接口时,基于所述查询接口查询处理结果,并将所述查询结果返回至所述第一系统,所述恢复接口由所述第一系统在检测到第二系统回复超时时请求调用,所述处理结果为所述处理请求对应的结果;
撤回模块,用于当接收到所述第一系统对反向接口的调用时,基于所述第一系统的调用,将所述处理结果对应的恢复数据撤回。
在另一个实施例中,所述装置包括:
生成模块,用于当完成对所述处理请求的处理时,生成所述处理结果,将所述处理结果返回至所述第一系统;
所述接收模块,还用于继续接收所述第一系统发送的其他处理请求并进行处理。
依据本发明第七方面,提供了一种设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面至第三方面所述方法的步骤。
依据本发明第八面,提供了一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面至第三方面所述的方法的步骤。
借由上述技术方案,本发明提供的一种系统调用方法、装置、设备及可读存储介质,与目前不管后续对下一个子系统的调用是否超时,都需要处理回调任务的方式相比,本发明当检测到等待时长大于超时阈值时,向定时调度器注册定时任务,并直接向上游返回失败响应,然后再接收定时器对恢复接口的调用,从而基于恢复接口调用第二系统的查询接口查询处理结果,在处理结果指示调用成功时,由第二系统将处理结果对应的恢复数据撤回,使得仅在超时的情境下才调用定时调度器,节省了定时调度器的大量资源,降低了系统调用。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1A示出了本发明实施例提供的一种系统调用方法流程示意图;
图1B示出了本发明实施例提供的一种系统调用方法流程示意图;
图1C示出了本发明实施例提供的一种系统调用方法流程示意图;
图2A示出了本发明实施例提供的一种系统调用方法流程示意图;
图2B示出了本发明实施例提供的一种系统调用方法流程示意图;
图3A示出了本发明实施例提供的一种系统调用装置的结构示意图;
图3B示出了本发明实施例提供的一种系统调用装置的结构示意图;
图3C示出了本发明实施例提供的一种系统调用装置的结构示意图;
图4示出了本发明实施例提供的一种系统调用装置的结构示意图;
图5A示出了本发明实施例提供的一种系统调用装置的结构示意图;
图5B示出了本发明实施例提供的一种系统调用装置的结构示意图;
图6示出了本发明实施例提供的一种设备的装置结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种系统调用方法,可以当检测到等待时长大于超时阈值时,向定时调度器注册定时任务,并直接向上游返回失败响应,然后再接收定时器对恢复接口的调用,从而基于恢复接口调用第二系统的查询接口查询处理结果,在处理结果指示调用成功时,由第二系统将处理结果对应的恢复数据撤回,使得仅在超时的情境下才调用定时调度器,达到了节省了定时调度器的大量资源,降低了系统调用的成本,如图1A所示,该方法包括:
101、向第二系统发送处理请求,统计等待第二系统返回处理结果的等待时长。
102、当检测到等待时长大于超时阈值时,向定时调度器注册定时任务,并向上游返回失败响应,定时任务至少包括预设时间和恢复接口。
103、接收定时调度器在经过了预设时间后对恢复接口的调用,基于恢复接口调用第二系统的查询接口,由第二系统查询并返回处理结果。
104、如果接收到的处理结果指示调用成功,则调用第二系统的反向接口,基于反向接口调用第二系统将处理结果对应的恢复数据撤回。
本发明实施例提供的方法,可以当检测到等待时长大于超时阈值时,向定时调度器注册定时任务,并直接向上游返回失败响应,然后再接收定时器对恢复接口的调用,从而基于恢复接口调用第二系统的查询接口查询处理结果,在处理结果指示调用成功时,由第二系统将处理结果对应的恢复数据撤回,使得仅在超时的情境下才调用定时调度器,节省了定时调度器的大量资源,降低了系统调用。
本发明实施例提供了一种系统调用方法,可以当检测到等待时长大于超时阈值时,向定时调度器注册定时任务,并直接向上游返回失败响应,然后再接收定时器对恢复接口的调用,从而基于恢复接口调用第二系统的查询接口查询处理结果,在处理结果指示调用成功时,由第二系统将处理结果对应的恢复数据撤回,使得仅在超时的情境下才调用定时调度器,达到了节省了定时调度器的大量资源,降低了系统调用的成本,如图1B所示,该方法包括:
105、接收第一系统注册的定时任务,定时任务由第一系统在检测到第二系统回复超时时请求注册,定时任务至少包括预设时间和恢复接口。
106、确定定时任务完成注册的注册时间,统计从注册时间开始的经过时长。
107、当经过时长等于预设时间时,对恢复接口进行调用,由第一系统基于恢复接口的调用向第二系统查询处理结果。
本发明实施例提供的方法,定时调度器在接收到第一系统注册的定时任务时,确定定时任务完成注册的注册时间,统计从注册时间开始的经过时长,并当经过时长等于预设时间时,对恢复接口进行调用,由第一系统基于恢复接口的调用向第二系统查询处理结果,使得仅在超时的情境下才调用定时调度器,节省了定时调度器的大量资源,降低了系统调用。
本发明实施例提供了一种系统调用方法,可以当检测到等待时长大于超时阈值时,向定时调度器注册定时任务,并直接向上游返回失败响应,然后再接收定时器对恢复接口的调用,从而基于恢复接口调用第二系统的查询接口查询处理结果,在处理结果指示调用成功时,由第二系统将处理结果对应的恢复数据撤回,使得仅在超时的情境下才调用定时调度器,达到了节省了定时调度器的大量资源,降低了系统调用的成本,如图1C所示,该方法包括:
108、接收第一系统发送的处理请求,对处理请求进行处理。
109、当检测到第一系统基于恢复接口调用查询接口时,基于查询接口查询处理结果,并将查询结果返回至第一系统,恢复接口由第一系统在检测到第二系统回复超时时请求调用,处理结果为处理请求对应的结果。
110、当接收到第一系统对反向接口的调用时,基于第一系统的调用,将处理结果对应的恢复数据撤回。
本发明实施例提供的方法,第二系统接收第一系统发送的处理请求,对处理请求进行处理,当检测到第一系统基于恢复接口调用查询接口时,基于查询接口查询处理结果,并将查询结果返回至第一系统,在后续当接收到第一系统对反向接口的调用时,基于第一系统的调用,将处理结果对应的恢复数据撤回,使得仅在超时的情境下才调用定时调度器,节省了定时调度器的大量资源,降低了系统调用。
本发明实施例提供了一种系统调用方法,可以当检测到等待时长大于超时阈值时,向定时调度器注册定时任务,并直接向上游返回失败响应,然后再接收定时器对恢复接口的调用,从而基于恢复接口调用第二系统的查询接口查询处理结果,在处理结果指示调用成功时,由第二系统将处理结果对应的恢复数据撤回,使得仅在超时的情境下才调用定时调度器,达到了节省了定时调度器的大量资源,降低了系统调用的成本,如图2A所示,该方法包括:
201、第一系统接收上游下发的处理任务,基于内部逻辑对处理任务进行处理,当检测到处理任务完成处理时,生成处理请求。
在本发明实施例中,当接收到处理任务时,由于整个软件系统是基于多个子系统协作工作实现服务的,因此,当某一个子系统接收到处理任务时,便会进行任务处理,并在完成当前的处理任务时,继续将生成的处理请求传输给下一个子系统,由下一个子系统继续处理,以此类推,从而保证处理任务的连贯处理。
这样,将当前接收到处理任务的子系统设为第一系统,第一系统接收上游下发的处理任务,并基于自身的内部逻辑对处理任务进行处理,在检测到处理任务完成处理时,便生成处理请求,以便后续将处理请求传输给下一子系统继续进行处理。其中,第一系统可为整个软件系统中的首个子系统,也可为中间的任一子系统,本发明对此不进行具体限定。例如,假设场景为扫码支付,商家在扫描了用户的支付码之后,需要解码子系统对获取的图像进行解码,这样,便可将该解码子系统作为第一系统,第一系统接收到的处理任务即为解码任务,当解码子系统完成对图像的解码后,可将生成的解码结果作为处理请求继续发送给下一个子系统进行处理。
202、第一系统向第二系统发送处理请求,统计等待第二系统返回处理结果的等待时长。
在本发明实施例中,当第一系统生成处理请求后,便可将生成的处理请求传输给下一个子系统继续进行处理,本发明将第一系统的下一系统设为第二系统,这样,第一系统便将生成的处理请求传输给第二系统。
在实际应用的过程中,考虑到软件系统的所依赖的网络存在延迟,且每个子系统都存在发生故障的可能,导致第一系统很可能长时间接收不到第二系统返回的处理结果,因此,为了避免子系统长时间等待下一子系统回复的处理结果,耽误了处理任务的进度,每个子系统都可以在发送处理请求后对等待下一子系统返回处理结果的等待时长进行统计,从而确定是否超时,也即第一系统向第二系统发送处理请求后,便可以开始统计等待第二系统返回处理结果的等待时长,以便后续基于该等待时长确定第二系统返回处理结果的过程是否超时。
203、第二系统接收第一系统发送的处理请求,对处理请求进行处理。
在本发明实施例中,当第二系统接收到第一系统发送的处理请求后,便可以对处理请求进行处理。需要说明的是,第二系统对处理请求进行处理并不是绝对成功的,很可能会出现失败的可能,因此,当第二系统完成对处理请求的处理时,便可以直接生成处理结果,并将处理结果返回给第一系统;同时,生成处理请求,将处理请求传输给下一个子系统进行处理,并继续接收第一系统发送的其他处理请求并进行处理。但是,如果第二系统并没有完成对处理请求的处理,则也会生成一个处理结果,这个处理结果会指示本次的处理失败,且第二系统没有将处理结果返回给第一系统的能力,此时,便会造成上述提及的第一系统接收处理结果发生超时的问题。
204、当第一系统检测到等待时长大于超时阈值时,向定时调度器注册定时任务,并向上游返回失败响应。
在本发明实施例中,如果第二系统在上述步骤203中对处理请求的处理失败,或者发送处理结果失败了,都会导致第一系统无法按时接收到第二系统的处理结果,这样,第二系统统计的等待时长便会很久,为了建立一个使第一系统确定不再等待的标准,也即第一系统确定第二系统已经超时的标准,第一系统中可以设置超时阈值,基于超时阈值来对等待时长进行限制。例如,可以设置超时阈值为1分钟,这样,当第一系统检测到等待时长已经累计大于一分钟时,便可以确定当前已经超时,继续执行向定时调度器注册定时任务,并向上游返回失败响应的过程。其中,超时阈值并不是固定的,可以根据不同的场景以及不同的处理任务进行调整,可由工作人员人工调整,在初始时,第一系统可以默认一个数值作为超时阈值。
当第一系统检测到等待时长大于超时阈值时,便可以确定第二系统已经超时,此时便无需继续等待了。为了使后续可以对本次的任务处理过程进行终结,避免中途停止对用户以及软件系统造成资源的损失,在第一系统已经确定第二系统超时后,便可以向定时调度器注册定时任务,使得后续通过该定时调度器中的定时任务来查询本次任务处理的进度,进而确定是否需要对数据进行撤回。其中,为了避免上游无法获知当前第二系统的超时状态而继续等待,耽误了任务的进度,第一系统需要告知上游当前已经处理任务失败,告知的过程需要时间,因此,第一系统在向定时调度器注册定时任务时,可以在定时任务中设置向上游返回响应的预设时间,保证在完成向上游的汇报后继续在定时调度器的辅助下完成后续的工作。另外,后续第一系统和定时调度器涉及到的工作为任务进度的查询以及数据的撤回,因此,为了实现这一工作,第一系统需要向定时调度器提供自身的恢复接口,以便定时调度器通过调用该恢复接口来实现工作的继续进行。综上所述,第一系统在向定时调度器注册定时任务时,定时任务中至少包括预设时间和恢复接口,预设时间可由第一系统根据当前的环境以及场景自行设置,本发明对预设时间的具体取值不进行具体限定。
这样,当第一系统完成了在定时调度器中注册定时任务后,第一系统便可以生成失败响应,并将该失败响应返回给上游,以使上游获知当前的任务处理已经失败,可以提示用户该失败进度,以便用户选择重新执行处理任务或者放弃执行处理任务。而在第一系统向上游返回失败响应的过程中,定时调度器会按照预设时间的指示进行等待,从而保证处理进程的异步进行。
205、定时调度器接收第一系统注册的定时任务,确定定时任务完成注册的注册时间,统计从注册时间开始的经过时长,当经过时长等于预设时间时,对恢复接口进行调用。
在本发明实施例中,定时调度器接收到第一系统注册的定时任务后,由于定时任务中规定了预设时间,因此,为了基于预设时间执行等待的过程,定时调度器在接收到定时任务时,便确定定时任务完成注册的注册时间,并统计从注册时间开始的经过时长,当经过时长等于定时任务中的预设时间时,便可以确定当前已经完成了等待,需要继续执行下一步骤。
由于定时任务中还规定了恢复接口,因此,当定时调度器统计到经过时长等于预设时间时,便可以对定时任务中规定的恢复接口进行调用,以便在后续基于对该恢复接口的调用实现其他的收尾工作。
206、第一系统接收定时调度器在经过了预设时间后对恢复接口的调用,基于恢复接口调用第二系统的查询接口。
在本发明实施例中,由于定时任务中设置的恢复接口为第一系统中的接口,因此,当定时调度器在经过了预设时间后对恢复接口进行调用时,第一系统会接收到定时调度器对恢复接口的调用。在实际应用的过程中,对恢复接口进行调用的实质目的是希望可以对本次发生超时的处理进行查询,确定本次发生超时的处理是否成功,因此,当第一系统的恢复接口被调用时,第一系统便基于被调用的恢复接口来调用第二系统的查询接口,从而查询本次的处理结果。
在实际应用的过程中,为了使第二系统可以具体确定查询哪一个处理结果,第一系统在调用第二系统的查询接口时,还可以将提取处理请求的请求标识,并将该请求标识传输给第二系统,以便第二系统基于该请求标识进行处理结果的查询。其中,请求标识可为处理请求的关键字、请求编号等,本发明对是否发送请求标识以及请求标识的具体内容不进行限定。
207、当第二系统检测到第一系统基于恢复接口调用查询接口时,基于查询接口查询处理结果,并将查询结果返回至第一系统。
在本发明实施例中,由于第一系统基于被调用的恢复接口调用了第二系统的查询接口,因此,第二系统会检测到查询接口被调用,这时,第二系统便可以基于该查询接口查询目前已经停滞的处理任务的处理结果,并将查询到的处理结果返回给第一系统。
需要说明的是,如果第一系统在调用查询接口时还发送了请求标识,则第二系统可以根据第一系统发送的请求标识来确定处理结果,从而提高确定的处理结果的准确性。
208、第一系统接收第二系统返回的处理结果,如果接收到的处理结果指示调用成功,则执行下述步骤209至步骤210;如果接收到的处理结果指示调用失败,则执行下述步骤211。
在本发明实施例中,由于第二系统将获取到的处理结果返回给第一系统,因此,第一系统会接收到第二系统返回的处理结果。其中,由于成功完成的处理任务得到的处理结果是会指示调用成功的,而没有成功完成的处理任务得到的处理结果是会指示调用失败的,这样,当第一系统接收到处理结果后,便可以确定处理结果指示的是调用成功还是调用失败,如果接收到的处理结果指示调用成功,则表示在本次的超时处理中,第二系统已经完成对处理请求的操作,而第一系统已经告知上游本次任务执行失败,因此,需要将第二系统已经完成的操作撤回,将本次操作涉及的影响消除,也即执行下述步骤209至步骤210;如果接收到的处理结果指示调用失败,则表示在本次的超时处理中,第二系统并没有完成对处理请求的操作,无需对第二系统的任何操作进行撤回,第二系统也并没有在本次操作中造成任何影响,也即执行下述步骤211。
209、如果接收到的处理结果指示调用成功,则第一系统调用第二系统的反向接口。
在本发明实施例中,如果接收到的处理结果指示调用成功,则表示在本次的超时处理中,第二系统已经完成对处理请求的操作,而第一系统已经告知上游本次任务执行失败,因此,需要将第二系统已经完成的操作撤回,将本次操作涉及的影响消除。为了实现对操作的撤回,第一系统需要调用第二系统的反向接口,以便第二系统基于该反向接收对超时的操作进行撤回。
210、第二系统基于第一系统的调用,将处理结果对应的恢复数据撤回。
在本发明实施例中,当第二系统接收到第一系统的调用后,由于之前第一系统已经确定了处理结果,因此,第二系统将确定的处理结果对应的恢复数据撤回,从而消除处理结果带来的影响。
其中,恢复数据也即处理结果造成的影响,比对,对于付款来说,恢复数据即为用户支付的资金,第二系统将该资金返还给资金的来源,从而实现对恢复数据的撤回。需要说明的是,如果第二系统接收到的用户支付的资金中还包括优惠券,则第二系统需要将优惠券也返还给资金的来源,从而保证对恢复数据的撤回是全面且完整的。
211、如果接收到的处理结果指示调用失败,则结束当前流程。
在本发明实施例中,如果接收到的处理结果指示调用失败,则表示在本次的超时处理中,第二系统并没有完成对处理请求的操作,无需对第二系统的任何操作进行撤回,第二系统也并没有在本次操作中造成任何影响,因此,结束当前流程即可。
上述步骤201至步骤211中所示的过程为两个系统之间某个系统发生超时的场景,而在实际应用的过程中,还可能发生多个系统之间某个系统发生超时的情况,在这里以A、B、C三个系统为例说明多个系统的情况,参见图2B,具体过程为:系统A接收处理任务,基于自身的内部处理逻辑对处理任务进行处理,并生成处理请求,将处理请求传输给系统B和系统C;其中,系统B成功完成对处理请求的处理,生成处理结果返回给系统A;而系统C发生了超时的情况,并没有将处理结果返回给系统A;这样,当系统A检测到系统C超时时,便向定时调度器注册定时任务,在定时调度器在定时任务的规定下进行等待的过程中,系统A向上游返回失败响应;随后,由于系统B已经完成了处理请求的处理,但是由于系统C的超时使得系统A已经告知上游失败,因此,需要将系统B和系统C在本次任务中的处理都撤回。由于系统A已经知晓系统B的处理成功,因此,系统A直接调用系统B的反向接口进行数据撤回即可。而对于系统C来说,系统A需要调用查询接口查询本次的处理结果,如果系统C已经处理成功,则撤回系统C的操作;如果系统C没有处理成功,则结束当前的处理流程,无需撤回任何操作。
进一步地,作为图1A所述方法的具体实现,本发明实施例提供了一种系统调用装置,如图3A所示,所述装置包括:统计模块301,注册模块302,第一调用模块303和第二调用模块304。
该统计模块301,用于向第二系统发送处理请求,统计等待所述第二系统返回处理结果的等待时长;
该注册模块302,用于当检测到所述等待时长大于超时阈值时,向定时调度器注册定时任务,并向上游返回失败响应,所述定时任务至少包括预设时间和恢复接口;
该第一调用模块303,用于接收所述定时调度器在经过了所述预设时间后对所述恢复接口的调用,基于所述恢复接口调用所述第二系统的查询接口,由所述第二系统查询并返回所述处理结果;
该第二调用模块304,用于如果接收到的所述处理结果指示调用成功,则调用所述第二系统的反向接口,基于所述反向接口调用所述第二系统将所述处理结果对应的恢复数据撤回。
在具体的应用场景中,如图3B所示,该装置包括:处理模块305和生成模块306。
该处理模块305,用于接收所述上游下发的处理任务,基于内部逻辑对所述处理任务进行处理;
该生成模块306,用于当检测到所述处理任务完成处理时,生成所述处理请求。
在具体的应用场景中,如图3C所示,该装置还包括:结束模块307。
结束模块,用于如果接收到的所述处理结果指示调用失败,则结束当前流程。
本发明实施例提供的装置,可以当检测到等待时长大于超时阈值时,向定时调度器注册定时任务,并直接向上游返回失败响应,然后再接收定时器对恢复接口的调用,从而基于恢复接口调用第二系统的查询接口查询处理结果,在处理结果指示调用成功时,由第二系统将处理结果对应的恢复数据撤回,使得仅在超时的情境下才调用定时调度器,节省了定时调度器的大量资源,降低了系统调用。
进一步地,作为图1B所述方法的具体实现,本发明实施例提供了一种系统调用装置,如图4所示,所述装置包括:接收模块401,统计模块402和调用模块403。
该接收模块401,用于接收第一系统注册的定时任务,所述定时任务由所述第一系统在检测到第二系统回复超时时请求注册,所述定时任务至少包括预设时间和恢复接口;
该统计模块402,用于确定所述定时任务完成注册的注册时间,统计从所述注册时间开始的经过时长;
该调用模块403,用于当所述经过时长等于所述预设时间时,对所述恢复接口进行调用,由所述第一系统基于所述恢复接口的调用向第二系统查询处理结果。
本发明实施例提供的装置,定时调度器在接收到第一系统注册的定时任务时,确定定时任务完成注册的注册时间,统计从注册时间开始的经过时长,并当经过时长等于预设时间时,对恢复接口进行调用,由第一系统基于恢复接口的调用向第二系统查询处理结果,使得仅在超时的情境下才调用定时调度器,节省了定时调度器的大量资源,降低了系统调用。
进一步地,作为图1C所述方法的具体实现,本发明实施例提供了一种系统调用装置,如图5A所示,所述装置包括:接收模块501,返回模块502和撤回模块503。
该接收模块501,用于接收第一系统发送的处理请求,对所述处理请求进行处理;
该返回模块502,用于当检测到所述第一系统基于恢复接口调用查询接口时,基于所述查询接口查询处理结果,并将所述查询结果返回至所述第一系统,所述恢复接口由所述第一系统在检测到第二系统回复超时时请求调用,所述处理结果为所述处理请求对应的结果;
该撤回模块503,用于当接收到所述第一系统对反向接口的调用时,基于所述第一系统的调用,将所述处理结果对应的恢复数据撤回。
在具体的应用场景中,如图5B所示,该装置包括:生成模块504。
该生成模块504,用于当完成对所述处理请求的处理时,生成所述处理结果,将所述处理结果返回至所述第一系统;
该接收模块501,还用于继续接收所述第一系统发送的其他处理请求并进行处理。
本发明实施例提供的装置,第二系统接收第一系统发送的处理请求,对处理请求进行处理,当检测到第一系统基于恢复接口调用查询接口时,基于查询接口查询处理结果,并将查询结果返回至第一系统,在后续当接收到第一系统对反向接口的调用时,基于第一系统的调用,将处理结果对应的恢复数据撤回,使得仅在超时的情境下才调用定时调度器,节省了定时调度器的大量资源,降低了系统调用。
需要说明的是,本发明实施例提供的一种系统调用装置所涉及各功能单元的其他相应描述,可以参考图1A至图1C和图2A至图2B中的对应描述,在此不再赘述。
在示例性实施例中,参见图6,还提供了一种设备,该设备600包括通信总线、处理器、存储器和通信接口,还可以包括、输入输出接口和显示设备,其中,各个功能单元之间可以通过总线完成相互间的通信。该存储器存储有计算机程序,处理器,用于执行存储器上所存放的程序,执行上述实施例中的系统调用方法。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的系统调用方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。
本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本申请序号仅仅为了描述,不代表实施场景的优劣。
以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。
Claims (10)
1.一种系统调用方法,其特征在于,所述方法包括:
向第二系统发送处理请求,统计等待所述第二系统返回处理结果的等待时长;
当检测到所述等待时长大于超时阈值时,向定时调度器注册定时任务,并向上游返回失败响应,所述定时任务至少包括预设时间和恢复接口;
接收所述定时调度器在经过了所述预设时间后对所述恢复接口的调用,基于所述恢复接口调用所述第二系统的查询接口,由所述第二系统查询并返回所述处理结果;
如果接收到的所述处理结果指示调用成功,则调用所述第二系统的反向接口,基于所述反向接口调用所述第二系统将所述处理结果对应的恢复数据撤回。
2.根据权利要求1所述的方法,其特征在于,所述向第二系统发送处理请求,统计等待所述第二系统返回处理结果的等待时长之前,包括:
接收所述上游下发的处理任务,基于内部逻辑对所述处理任务进行处理;
当检测到所述处理任务完成处理时,生成所述处理请求。
3.根据权利要求1所述的方法,其特征在于,所述接收所述定时调度器在经过了所述预设时间后对所述恢复接口的调用,基于所述恢复接口调用所述第二系统的查询接口,查询所述处理结果之后,所述方法还包括:
如果接收到的所述处理结果指示调用失败,则结束当前流程。
4.一种系统调用方法,其特征在于,所述方法包括:
接收第一系统注册的定时任务,所述定时任务由所述第一系统在检测到第二系统回复超时时请求注册,所述定时任务至少包括预设时间和恢复接口;
确定所述定时任务完成注册的注册时间,统计从所述注册时间开始的经过时长;
当所述经过时长等于所述预设时间时,对所述恢复接口进行调用,由所述第一系统基于所述恢复接口的调用向第二系统查询处理结果。
5.一种系统调用方法,其特征在于,所述方法包括:
接收第一系统发送的处理请求,对所述处理请求进行处理;
当检测到所述第一系统基于恢复接口调用查询接口时,基于所述查询接口查询处理结果,并将所述查询结果返回至所述第一系统,所述恢复接口由所述第一系统在检测到第二系统回复超时时请求调用,所述处理结果为所述处理请求对应的结果;
当接收到所述第一系统对反向接口的调用时,基于所述第一系统的调用,将所述处理结果对应的恢复数据撤回。
6.根据权利要求5所述的方法,其特征在于,所述接收第一系统发送的处理请求,对所述处理请求进行处理之后,包括:
当完成对所述处理请求的处理时,生成所述处理结果,将所述处理结果返回至所述第一系统;
继续接收所述第一系统发送的其他处理请求并进行处理。
7.一种系统调用装置,其特征在于,所述装置包括:
统计模块,用于向第二系统发送处理请求,统计等待所述第二系统返回处理结果的等待时长;
注册模块,用于当检测到所述等待时长大于超时阈值时,向定时调度器注册定时任务,并向上游返回失败响应,所述定时任务至少包括预设时间和恢复接口;
第一调用模块,用于接收所述定时调度器在经过了所述预设时间后对所述恢复接口的调用,基于所述恢复接口调用所述第二系统的查询接口,由所述第二系统查询并返回所述处理结果;
第二调用模块,用于如果接收到的所述处理结果指示调用成功,则调用所述第二系统的反向接口,基于所述反向接口调用所述第二系统将所述处理结果对应的恢复数据撤回。
8.一种系统调用装置,其特征在于,所述装置包括:
接收模块,用于接收第一系统注册的定时任务,所述定时任务由所述第一系统在检测到第二系统回复超时时请求注册,所述定时任务至少包括预设时间和恢复接口;
统计模块,用于确定所述定时任务完成注册的注册时间,统计从所述注册时间开始的经过时长;
调用模块,用于当所述经过时长等于所述预设时间时,对所述恢复接口进行调用,由所述第一系统基于所述恢复接口的调用向第二系统查询处理结果。
9.一种设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
10.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910137197.6A CN110008010B (zh) | 2019-02-25 | 2019-02-25 | 系统调用方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910137197.6A CN110008010B (zh) | 2019-02-25 | 2019-02-25 | 系统调用方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110008010A true CN110008010A (zh) | 2019-07-12 |
CN110008010B CN110008010B (zh) | 2021-02-09 |
Family
ID=67165971
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910137197.6A Active CN110008010B (zh) | 2019-02-25 | 2019-02-25 | 系统调用方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110008010B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112671835A (zh) * | 2020-12-07 | 2021-04-16 | 深圳市晨北科技有限公司 | 一种请求处理的方法、装置、系统及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102270156A (zh) * | 2011-05-30 | 2011-12-07 | 北京华源格林科技有限公司 | 一种实时嵌入式系统定时器管理方法 |
US8190593B1 (en) * | 2010-04-14 | 2012-05-29 | A9.Com, Inc. | Dynamic request throttling |
US20140016767A1 (en) * | 2012-06-01 | 2014-01-16 | Callpromise, Llc | System and method for simulating virtual queuing of calls |
CN105635231A (zh) * | 2014-11-06 | 2016-06-01 | 阿里巴巴集团控股有限公司 | 一种分布式系统的调用方法和装置 |
CN108509264A (zh) * | 2018-03-30 | 2018-09-07 | 浙江口碑网络技术有限公司 | 超时任务调度系统及方法 |
CN108900379A (zh) * | 2018-07-09 | 2018-11-27 | 广东神马搜索科技有限公司 | 分布式网络业务调度方法、装置、计算设备和存储介质 |
-
2019
- 2019-02-25 CN CN201910137197.6A patent/CN110008010B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8190593B1 (en) * | 2010-04-14 | 2012-05-29 | A9.Com, Inc. | Dynamic request throttling |
CN102270156A (zh) * | 2011-05-30 | 2011-12-07 | 北京华源格林科技有限公司 | 一种实时嵌入式系统定时器管理方法 |
US20140016767A1 (en) * | 2012-06-01 | 2014-01-16 | Callpromise, Llc | System and method for simulating virtual queuing of calls |
CN105635231A (zh) * | 2014-11-06 | 2016-06-01 | 阿里巴巴集团控股有限公司 | 一种分布式系统的调用方法和装置 |
CN108509264A (zh) * | 2018-03-30 | 2018-09-07 | 浙江口碑网络技术有限公司 | 超时任务调度系统及方法 |
CN108900379A (zh) * | 2018-07-09 | 2018-11-27 | 广东神马搜索科技有限公司 | 分布式网络业务调度方法、装置、计算设备和存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112671835A (zh) * | 2020-12-07 | 2021-04-16 | 深圳市晨北科技有限公司 | 一种请求处理的方法、装置、系统及存储介质 |
CN112671835B (zh) * | 2020-12-07 | 2022-08-09 | 深圳市晨北科技有限公司 | 一种请求处理的方法、装置、系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110008010B (zh) | 2021-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2735156C1 (ru) | Способ и устройство для отправки информации о транзакциях и для проверки консенсуса | |
CN107436799B (zh) | 分布式事务一致性实现方法及装置 | |
CN107193672B (zh) | 一种跨区块异步调用合约系统 | |
CN110413384B (zh) | 延时任务处理方法及装置、存储介质、电子设备 | |
CN112446786A (zh) | 一种异常交易处理方法、装置、电子设备和可读存储介质 | |
CN111090532A (zh) | 应用服务的调用方法、其装置、电子设备及计算机存储介质 | |
CN109684048B (zh) | 事务提交系统中处理事务的方法及装置 | |
CN111294377B (zh) | 一种依赖关系的网络请求发送方法、终端装置及存储介质 | |
CN105373563B (zh) | 数据库切换方法及装置 | |
CN107645476B (zh) | 请求处理方法和装置 | |
CN110008010A (zh) | 系统调用方法、装置、设备及可读存储介质 | |
CN112818336A (zh) | 一种数据访问方法、数据访问装置及计算机可读存储介质 | |
CN112995262B (zh) | 分布式事务提交方法、系统及计算设备 | |
CN111831408A (zh) | 异步任务处理方法、装置、电子设备及介质 | |
CN111913815A (zh) | 调用请求的处理方法、装置、电子设备及可读存储介质 | |
CN112101923A (zh) | 交易信息的处理方法和装置 | |
CN111367694A (zh) | 事件处理方法、服务器及计算机存储介质 | |
CN112379952B (zh) | 一种跨进程回调的实现方法 | |
CN110457116B (zh) | 处理事务请求的方法及装置 | |
US20210240698A1 (en) | Asynchronous remote calls with undo data structures | |
CN108809763B (zh) | 一种网络性能参数采集方法、终端装置及存储介质 | |
CN113051008A (zh) | 接口请求处理方法、装置、计算机设备和存储介质 | |
CN113778631A (zh) | 分布式事务补偿方法、装置、电子设备及可读存储介质 | |
CN112950171A (zh) | 一种银行业务处理系统及方法 | |
CN116010126B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |