CN113760509B - 一种超时管理方法、装置及电子设备 - Google Patents

一种超时管理方法、装置及电子设备 Download PDF

Info

Publication number
CN113760509B
CN113760509B CN202110980230.9A CN202110980230A CN113760509B CN 113760509 B CN113760509 B CN 113760509B CN 202110980230 A CN202110980230 A CN 202110980230A CN 113760509 B CN113760509 B CN 113760509B
Authority
CN
China
Prior art keywords
time
target system
target
processing task
duration
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.)
Active
Application number
CN202110980230.9A
Other languages
English (en)
Other versions
CN113760509A (zh
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 Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and 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 Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202110980230.9A priority Critical patent/CN113760509B/zh
Publication of CN113760509A publication Critical patent/CN113760509A/zh
Application granted granted Critical
Publication of CN113760509B publication Critical patent/CN113760509B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供了一种超时管理方法、装置及电子设备,涉及数据处理技术,尤其涉及超时数据管理等技术领域。具体方案为:在预期时间未接收到目标系统发送的针对第一处理任务的结束通知的情况下,通过目标系统对于第一处理任务的开始时间与目标系统的预设任务时长确定超时时间;在超时时间早于或等于预期时间的情况下向目标系统发送第一请求,以请求重新执行第一处理任务。在预期时间未接收到结束通知的情况下,还需利用目标系统对于第一处理任务的开始时间与目标系统的预设任务时长确定超时时间,在超时时间早于或等于预期时间的情况下,确定超时,方可向目标系统发送第一请求,使目标系统重新执行第一处理任务,从而可提高超时管理的效果。

Description

一种超时管理方法、装置及电子设备
技术领域
本公开涉及数据处理技术中的超时数据管理等技术领域,尤其涉及一种超时管理方法、装置及电子设备。
背景技术
超时管理系统是指在预期时间内没有收到确认导致超时从而触发超时操作执行的系统。在数据传输、处理、调度过程中,为了确保丢失数据能够及时感知并处理,会设置一个预设任务时长,到达超时会执行特定操作,处理超时数据。
目前,在超时管理过程中,设置一个固定的预设任务时长,收到目标系统发送的指示某个处理任务开始处理的开始通知后,在预设任务时长达到时,未收到目标系统的确认,则确定目标系统执行该处理任务超时,超时管理系统触发超时操作使目标系统重试该处理任务。
发明内容
本公开提供一种超时管理方法、装置及电子设备。
第一方面,本公开一个实施例提供一种超时管理方法,所述方法包括:
在预期时间未接收到目标系统发送的针对第一处理任务的结束通知的情况下,通过所述目标系统对于所述第一处理任务的开始时间与所述目标系统的预设任务时长确定超时时间;
在所述超时时间早于或等于所述预期时间的情况下,向所述目标系统发送第一请求,所述第一请求用于请求所述目标系统重新执行所述第一处理任务。
本实施例的超时管理方法中,在预期时间未接收到目标系统发送的针对第一处理任务的结束通知的情况下,还需利用目标系统对于所述第一处理任务的开始时间与所述目标系统的预设任务时长确定超时时间,通过超时时间与预期时间比较,在进一步确定超时时间早于或等于所述预期时间的情况下,方可确定第一处理任务处理超时,从而向所述目标系统发送第一请求,以请求所述目标系统重新执行所述第一处理任务,这样,可提高超时确认的准确性,并在确认超时的情况下请求目标系统重新执行第一处理任务,从而可提高超时管理的效果。
第二方面,本公开一个实施例提供一种超时管理装置,所述装置包括:
第一确定模块,用于在预期时间未接收到目标系统发送的针对第一处理任务的结束通知的情况下,通过所述目标系统对于所述第一处理任务的开始时间与所述目标系统的预设任务时长确定超时时间;
第一发送模块,用于在所述超时时间早于或等于所述预期时间的情况下,向所述目标系统发送第一请求,所述第一请求用于请求所述目标系统重新执行所述第一处理任务。
第三方面,本公开一个实施例还提供一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开如第一方面提供的超时管理方法。
第四方面,本公开一个实施例还提供一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本公开如第一方面提供的超时管理方法。
第五方面,本公开一个实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现本公开如第一方面提供的超时管理方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是本公开提供的一个实施例的超时管理方法的流程示意图之一;
图2是本公开提供的一个实施例的超时管理方法的流程示意图之二;
图3是本公开提供的一个实施例的超时管理系统中网络接口层的协议和处理逻辑;
图4是本公开提供的一个实施例的数据库中的存储结构;
图5是本公开提供的一个实施例的耗时滑动窗口的示意图;
图6是本公开提供的一个实施例的自适应预设任务时长调节示意图;
图7是本公开提供的一个实施例的超时管理装置的结构图;
图8是用来实现本公开实施例的超时管理方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
如图1所示,根据本公开的实施例,本公开提供一种超时管理方法,方法包括:
步骤S101:在预期时间未接收到目标系统发送的针对第一处理任务的结束通知的情况下,通过目标系统对于第一处理任务的开始时间与目标系统的预设任务时长确定超时时间。
超时管理方法可通过电子设备中的超时管理系统实现,超时管理系统可实现对接入的各系统(也可称模块)进行超时管理,目标系统即为任一接入超时管理系统并需要通过超时管理系统进行超时管理的系统。目标系统有对应的预设任务时长,第一处理任务是目标系统进行处理的任一任务,第一处理任务的结束通知表示第一处理任务已结束,即第一处理任务已处理完成,在本实施例中,若在预期时间未收到目标超时系统发送的对于第一处理任务的结束通知,表示在预期时间目标系统还未处理完第一处理任务,这种情况下,目标系统对于第一处理任务可能出现处理超时,需要进一步的校验,由于目标系统的预设任务时长可能发生更新,此处的目标系统的预设任务时长可以理解为目标系统当前的预设任务时长或目标系统的最新的预设任务时长,在校验之前,首先需要通过目标系统对于第一处理任务的开始时间与目标系统的预设任务时长确定超时时间,后续利用超时时间进行校验。需要说明的是,第一处理任务的开始时间表示目标系统执行第一处理任务的开始时间,即开始执行第一处理任务的时间。
步骤S102:在超时时间早于或等于预期时间的情况下,向目标系统发送第一请求,第一请求用于请求目标系统重新执行第一处理任务。
通过比较超时时间与预期时间,以确认是否发生超时,在超时时间早于或等于预期时间的情况下,可以确认第一处理任务处理超时,则可向目标系统发送第一请求,以请求目标系统重新执行第一处理任务,以实现第一处理任务的重试。
在本实施例中,在预期时间未接收到目标系统发送的针对第一处理任务的结束通知的情况下,根据所述目标系统对于所述第一处理任务的开始时间与所述目标系统的预设任务时长确定超时时间,利用超时时间进一步确认第一处理任务是否发生处理超时,通过比较超时时间与预期时间,在超时时间早于或等于所述预期时间的情况下,可确定第一处理任务处理超时,即向所述目标系统发送第一请求,以请求所述目标系统重新执行所述第一处理任务。也即是,在预期时间未接收到目标系统发送的针对第一处理任务的结束通知的情况下,还需利用目标系统对于所述第一处理任务的开始时间与所述目标系统的预设任务时长确定超时时间,通过超时时间与预期时间比较,在进一步确定超时时间早于或等于所述预期时间的情况下,方可确定第一处理任务处理超时,从而向所述目标系统发送第一请求,以请求所述目标系统重新执行所述第一处理任务,这样,可提高超时确认的准确性,并在确认超时的情况下请求目标系统重新执行第一处理任务,从而可提高超时管理的效果。
在一个实施例中,向目标系统发送第一请求之后,还包括:
将开始时间更新为第一请求的发送时间;
利用更新后的开始时间以及目标系统的预设任务时长,更新预期时间。
向目标发送第一请求,请求目标系统重新执行第一处理任务,这样,后续需要重新判断是否第一处理任务是否处理超时,从而,在发送第一请求后,还需将开始时间更新为第一请求的发送时间,可以理解为重新执行第一处理任务的开始时间,并利用更新后的开始件以及目标系统的最新的预设任务时长,来更新预期时间,后续重新根据更新后的预期时间通过上述过程重新对第一处理任务进行超时管理。
在本实施例中,向目标系统发送第一请求后,对将开始时间更新为第一请求的发送时间,利用更新后的开始时间以及目标系统的预设任务时长,更新预期时间,以便于后续重新对第一处理任务的超时管理,提高超时管理的准确性。
在一个实施例中,通过开始时间与目标系统的预设任务时长确定第一超时时间之前,还包括:
基于目标系统的基本信息生成系统信息,并将系统信息存入数据库的系统信息表中,基本信息中包括目标系统的预设任务时长,系统信息中包括目标系统的预设任务时长。
可以理解,可预先将系统信息存入数据库的系统信息表(也称模块信息表)中。作为一个示例,基本信息还可以包括但不限于:目标系统的名称、目标系统的预设任务时长、重试次数、超时函数(超时后执行的操作) 以及该超时函数的初始化参数(即执行该操作的初始参数,例如,请求的地址、路径等网络参数)等,系统信息还可包括但不限于:目标系统初始的预设任务时长、重试次数、超时函数、该超时函数的初始化参数、时长上限和时长下限等,其中,时长上限和时长下限可以根据目标系统执行历史处理任务的耗时等预先设置。作为一个示例,上述数据库可以是Redis 数据库等。需要说明的是,此处的目标系统的预设任务时长是初始的预设任务时长,后续可对其进行更新的,上述在通过所述目标系统对于所述第一处理任务的开始时间与所述目标系统的预设任务时长确定超时时间过程中采用的所述目标系统的预设任务时长是数据库中目标系统的最新的预设任务时长。
在本实施例中,数据库中可包括系统信息表,可将目标系统的系统信息存入该系统信息表中,以便对目标系统的系统信息的处理等。
在一个实施例中,将目标系统的基本信息存入数据库的系统信息表中之后,还包括:
在间隔时长大于第一预设时长的情况下,根据耗时滑动窗口中记录的 N个历史处理任务的耗时确定第一时长,并将目标系统的预设任务时长更新为第一时长,N为正整数;
其中,间隔时长为当前时间与第一时间之间的间隔,第一时间为距离当前时间最近的一次更新预设任务时长的时间或者为开始时间。
在间隔时长大于第一预设时长的情况下,表示满足时长更新条件,即可对数据库中目标系统的预设任务时长进行更新,在本实施例中,可先根据耗时滑动窗口中记录的N个历史处理任务的耗时确定第一时长,利用第一时长更新目标系统的预设任务时长。若目标系统的预设任务时长存入到数据库后还未更新过,则间隔时长为当前时间与开始时间之间的间隔,若目标系统的预设任务时长存入到数据库后更新过,则间隔时长为当前时间与距离当前时间最近的一次更新预设任务时长的时间。
需要说明的是,耗时滑动窗口可用于记录目标系统执行完成的历史处理任务的实际耗时,耗时滑动窗口的大小可以是M,即耗时滑动窗口最大可记录M个耗时(即M个历史处理任务的耗时),M为大于或等于N的整数。可利用耗时滑动窗口中N个耗时来确定第一时长,作为一个示例,可以通过对耗时滑动窗口中的耗时进行采样,得到N个耗时,例如,可以是等间隔采样。作为一个示例,可将N个耗时的均值确定为第一时长,作为另一个示例,也可以将从小到大排序后的N个耗时中处于目标分位值的耗时再乘以预设调节系数(K,K大于零)的结果作为第一时长,例如,目标分为可以为90分为值。
在本实施例中,在间隔时长大于第一预设时长的情况下,即可根据耗时滑动窗口中记录的N个历史处理任务的耗时确定第一时长,并将所述目标系统的预设任务时长更新为所述第一时长,实现对数据库中目标系统的预设任务时长的更新,使目标系统的预设任务时长能更加适应目标系统任务处理的实际耗时,提高预设任务时长的准确性,从而可提高耗时管理的效果。
在一个实施例中,根据耗时滑动窗口中记录的N个历史处理任务的耗时确定第一时长之前,还包括:
接收目标系统发送的针对目标历史处理任务的开始通知,目标历史处理任务为N个历史处理任务中任一任务;
在接收到目标系统发送的针对目标历史处理任务的结束通知的情况下,将针对所述目标历史任务的结束通知的第一接收时间与针对所述目标历史任务的开始通知的第二接收时间之间时间差确定为目标历史处理任务的耗时;
将目标历史处理任务的耗时记录于耗时滑动窗口中。
其中,针对目标历史处理任务的开始通知,表示目标系统开始执行该目标历史处理任务的通知,针对目标历史处理任务的结束通知,表示目标系统完成该目标历史处理任务的通知,目标系统在完成该目标历史处理任务的情况下可发送该结束通知。也即是,在本实施例中,将针对所述目标历史任务的开始通知的第二接收时间作为执行目标历史任务的开始时间,将针对所述目标历史任务的结束通知的第一接收时间作为目标历史任务的完成时间,对于目标系统的任一任务,在接收对于该任务的结束通知后,即可利用结束通知的第一接收时间与开始通知的第二接收时间之间时间差确定为该任务的实际耗时。在得到目标历史处理任务的耗时后,可将目标历史处理任务的耗时记录于耗时滑动窗口中。需要说明的是,耗时滑动窗口的大小有限,最多可记录M个耗时,在每接收到一个任务的结束通知计算得到该任务的耗时后,若耗时滑动窗口还未满(记录的耗时数量小于M),可将该任务的耗时记录于耗时滑动窗口,若耗时滑动窗口已满(即已记录了M个耗时),可先将耗时滑动窗口中最先记录的耗时删除,然后将该任务的耗时记录与耗时滑动窗口中,实现耗时滑动窗口中耗时的更新。
在本实施例中,在接收到所述目标系统发送的针对所述目标历史处理任务的结束通知的情况下,可将针对所述目标历史处理任务的结束通知的第一接收时间与针对所述目标历史处理任务的开始通知的第二接收时间之间时间差确定为所述目标历史处理任务的耗时,并将目标历史处理任务的耗时记录于所述耗时滑动窗口中,后续从耗时滑动窗口中选择耗时,利用选择的耗时更新预设任务时长即可,可提高预设任务时长更新的便利性。
在一个实施例中,通过开始时间与目标系统的预设任务时长确定第一超时时间之前,还包括:
接收目标系统发送的针对第一处理任务的开始通知,针对第一处理任务的开始通知中包括第一处理任务的标识;
基于第一处理任务的标识,计算目标哈希值;
在数据库中目标哈希值对应的分片中不包括第一处理任务的标识的情况下,基于基本信息确定预期时间以及目标数据信息,并将预期时间与第一处理任务的标识关联存入数据库中数据倒计时表的分片中以及将目标数据信息与第一处理任务的标识存入数据库中数据信息表的分片中。
在本实施例中,数据库中采用不同的表来存储不同类型的数据,利用系统信息表来存储系统信息,可利用数据信息表存储生成的数据信息,可利用数据倒计时表存储预期时间。且每个表采用多个分片方式,每个分片用于存储一部分数据,例如,一个分片用于存储一个处理任务对应的数据等。上述计算得到的目标哈希值可以理解为分片号,从而可通过目标哈希值可确定对应的分片。得到目标哈希值后,可查询数据库中目标哈希值对应的分片中是否包括第一处理任务的标识,若不包括,表示之前未处理过该第一处理任务,可基于目标系统的基本信息确定预期时间以及目标数据信息,然后将预期时间与第一处理任务的标识关联存入数据库中数据倒计时表的分片中以及将目标数据信息与第一处理任务的标识存入数据库中数据信息表的分片中。若包括,表示之前处理过该第一处理任务,本次是对第一处理任务的重试,这种情况下,之前已存储过相关的预期时间和目标数据信息,本次可不再存储,可忽略该开始通知。需要说明的是,初始时,目标系统对于所述第一处理任务的开始时间可以理解为接收到目标系统发送的针对第一处理任务的开始通知的时间。作为一个示例,目标数据信息可以包括但不限于上述开始时间以及剩余重试次数等。
在本实施例中,可通过数据库中不同表来存储不同的信息,通过哈希值映射分片位置,将所述预期时间与所述第一处理任务的标识关联存入所述数据库中数据倒计时表的所述分片中以及将所述目标数据信息与所述第一处理任务的标识存入所述数据库中数据信息表的所述分片中,以便与对数据库的表中信息的维护,且可提高数据库中表的容错性和可扩展性。
在一个实施例中,方法还包括:
在预期时间之前接收到目标系统发送的针对第一处理任务的结束通知的情况下,将数据倒计时表的分片中预期时间与第一处理任务的标识删除,以及将数据信息表的分片中目标数据信息与第一处理任务的标识删除;
其中,该结束通知中包括第一处理任务的标识。
在预期时间之前接收到目标系统发送的针对第一处理任务的结束通知的情况下,表示目标系统执行第一处理任务未超时,由于该结束通知中包括所述第一处理任务的标识,通过第一处理任务的标识可计算得到目标哈希处理,根据目标哈希值可确定对应的分片,即可将数据库的数据倒计时表的该分片中记录的预期时间与第一处理任务的标识删除,以及将数据信息表的该分片中记录的目标数据信息与第一处理任务的标识删除,以节省存储空间以及便于对数据块中表的管理。
在一个实施例中,系统信息中还包括时长上限和时长下限;
将目标系统的预设任务时长更新为第一时长包括以下任一项:
在第一时长在时长下限到时长上限的范围内的情况下,将目标系统的预设任务时长更新为第一时长;
在第一时长大于时长上限的情况下,将第一时长更新为时长上限,将目标系统的预设任务时长更新为更新后的第一时长;
在第一时长小于时长下限的情况下,将第一时长更新为时长下限,将目标系统的预设任务时长更新为更新后的第一时长。
由于系统信息中设置有时长上限和时长下限,在确定第一时长后,还需对第一时长进行判断,即判断第一时长是否在时长下限到时长上限的范围内,若在该范围内,即可将目标系统的预设任务时长更新为第一时长。若第一时长大于时长上限,需将第一时长更新为时长上限后,再将目标系统的预设任务时长更新为更新后的第一时长,也即是将目标系统的预设任务时长更新为时长上限。若第一时长小于时长下限,需将第一时长更新为时长下限后,再将目标系统的预设任务时长更新为更新后的第一时长,也即是将目标系统的预设任务时长更新为时长下限。如此,可确保在目标系统的预设任务时长更新过程中,保持更新后的预设任务时长在时长下限到所述时长上限的范围内,也即是可在时长下限到所述时长上限的范围内自适应更新,以免更新后的预设任务时长过小或过大,以提高整体的超时管理效果。
在一个实施例中,向目标系统发送第一请求,包括:
在熔断滑动窗口中记录不为空的情况下,向目标系统发送第一请求;
熔断滑动窗口用于记录目标系统发送的结束通知,其中,熔断滑动窗口中的记录的时长大于第二预设时长的情况下,将记录从熔断滑动窗口中删除,若熔断窗口中的记录为空,则启动熔断机制,在熔断机制下,停止向目标系统发送用于请求目标系统执行处理任务的请求。
目标系统每完成一个处理任务即可发送该处理任务的结束通知,以通知对应的处理任务已完成,接收到目标系统发送的结束通知,即可将结束通知记录于熔断滑动窗口中,在熔断滑动窗口中记录不为空的情况下,表示在一定时长内目标系统有发结束通知,也即是目标系统能完成处理任务,目标系统未断流,即可向目标系统发送第一请求,请求目标系统重新执行第一处理任务。在熔断滑动窗口中记录为空的情况下,表示目标系统可能在一段时间内发生故障未能正常完成处理任务,目标系统发生断流的情况,即使发送请求,目标系统可能也无法正常进行相应任务处理,此时不向目标系统发送第一请求,避免无效重试。而且熔断窗口中的记录为空,则启动熔断机制,在熔断机制下,停止向目标系统发送用于请求目标系统执行任何处理任务的任何请求,即在本实施例中,可通过熔断滑动窗口检测目标系统是否断流,断流的情况下启动熔断机制,避免无效重试。需要说明的是,熔断滑动窗口中的记录有时长限制,在某个记录在熔断滑动窗口中的时长大于第二预设时长的情况下,则将该记录从熔断滑动窗口中删除,以确保熔断滑动窗口的时效性。
在本实施例中,是在熔断滑动窗口中记录不为空的情况下,向所述目标系统发送所述第一请求,避免无效重试,提高请求目标系统重试的有效性。
在一个实施例中,向目标系统发送第一请求,包括:
在剩余重试次数不为零的情况下,向目标系统发送第一请求;
其中,剩余重试次数的初始值为目标系统的重试次数,每向目标系统发送一次用于请求目标系统重新执行第一处理任务的请求,剩余重试次数减一。
目标数据信息中可包括剩余重试次数,基本信息和系统信息中均可包括重试次数(可以理解为任务重试次数),目标数据信息中的剩余重试次数在初始时可以为重试次数,每向目标系统发送一次用于请求目标系统重新执行第一处理任务的请求,剩余重试次数进行一次减一处理,在剩余重试次数不为零的情况下,向目标系统发送第一请求,以提高请求发送的准确性以及避免无效请求。在剩余重试次数为零的情况下,不向目标系统发送第一请求,即不请求目标系统重新执行第一处理任务,后续将数据库中该第一处理任务的标识以及相关的信息删除。
需要说明的是,本实施例中还可以设置多维度重试机制,例如,在系统信息中还可包括指示是否支持多维度重试机制的参数,若参数为第一目标值,表示支持多维度重试机制的参数,若该参数为第二目标值,表示不支持多维度重试机制的参数,在这种情况下,剩余重试次数为零后,不再向目标系统发送请求以请求目标系统重试第一处理任务。若支持多维度重试机制,上述系统信息中的重试次数可以作为第一维度的重试次数,另外,还可设置第二维度的重试次数,在剩余重试次数为零的情况下,可将第二维度的重试次数减一,更新第二维度的重试次数,在更新后的第二维度的重试次数不为零的情况下,还可将剩余重试次数设置为第一维度的重试次数,此时,剩余重试次数不为零,可向目标系统发送请求。例如,支持多个维度的重试,比如第一维度的重试次数为3次,第二维度的重试次数为 2次,第一维度的重试次数整体作为第二维度的一次,总的重试次数为6 次,每个维度内的重试间隔独立设置,互不影响,通过这种机制可以进一步降低数据丢失的概率;第二维度的重试,数据从数据库的数据信息表中恢复出来,多维度都重试失败之后,第一处理任务相关的信息从数据库中数据倒计时表和数据信息表中彻底删除。
在一个实施例中,方法还包括:
在超时时间晚于预期时间的情况下,将预期时间更新为超时时间。
即通过超时时间和预期时间进行比较,确定目标系统执行第一处理任务是否超时,在超时时间晚于预期时间的情况下,可以认为目标系统执行第一处理任务还未超时,此时,可将预期时间更新为超时时间,后续根据更新后的预期时间进行超时管理,提高超时管理的效果。
下面以一个具体实施例对上述超时管理方法的过程加以具体说明。通过超时管理系统实现本公开实施例的超时管理方法,本公开超时管理方法可应用于feed数据接入场景以及搜索抓取场景等。以目标系统为目标模块以及系统信息为模块信息为例,如图2所示,为本实施例超时管理方法的整体处理流程,首先是网络接口层,超时管理系统通过网络接口层对外提供服务,图3表示了网络接口层的协议和处理逻辑,主要包括注册、计时、干预等几个接口。然后是存储层,采用redis数据库作为存储介质,图4 展示了存储结构的选型和具体的结构设计,主要包括业务模块信息表(系统信息表)、数据倒计时表和数据信息表;最后是服务的内部处理逻辑。
如图2所示,超时管理系统的工作流程:首先通过模块注册接口将目标系统的系统信息(可根据目标系统的基本信息确定)存入模块信息表(系统信息表)中;然后在接收到目标系统发送的对于第一处理任务的开始通知时开始计时,根据第一处理任务的标识计算目标哈希值,根据目标哈希值找到对应的存储分片,如果存储分片中第一处理任务的标识已存在,该开始通知会被去重忽略,若不存在,结合模块信息表确定目标数据信息和预期时间,分别存入数据信息表和数据倒计时表;在预期时间之前收到目标系统发送的针对第一处理任务的结束通知时结束计时,可根据结束通知更新熔断滑动窗口,即在熔断滑动窗口中记录第一处理任务的结束通知,计算第一处理任务的耗时(结束计时的时间与开始计时的时间之间的时间差为第一处理任务的实际耗时),将第一处理任务的耗时记录于耗时滑动窗口中,更新耗时滑动窗口,耗时滑动窗口中的耗时可用来更新目标系统的预设任务时长(即超时时长),例如,可异步更新,可在间隔时长大于第一预设时长的情况下,利用耗时滑动窗口中的N个耗时确定第一时长,利用第一时长更新到模块信息表中的预设任务时长;超时管理系统可从数据倒计时表中获取超时数据,例如,在预期时间未收到目标系统发送的针对第一处理任务的结束通知,根据数据倒计时表第一处理任务的标识,从数据信息表中获取到对应的目标数据信息,即超时数据,再结合目标数据信息中的开始时间与目标系统的预设任务时长确定超时时间,利用超时时间和预期时间进行一次校验,如果超时时间早于或等于预期时间,可确认超时,则执行超时任务(超时后执行的操作),例如,向述目标系统发送第一请求,请求所述目标系统重新执行所述第一处理任务。如果超时时间晚于预期时间,可确认未超时,计算新的预期时间,更新数据倒计时表中目标系统的预期时间。
本公开实施例的超时管理方法,选取redis数据库作为数据存储介质,采取多分片的方式进行分散存储,使用一致性Hash(哈希)进行负载均衡。图4展示了一个实施例的redis存储结构,主要包含3个数据表。一个是模块信息表,存储选型为Hash(哈希表),用于保存每个接入模块(系统) 的系统信息,包括重试次数、超时后需要执行的操作、超时请求的rpc参数(执行该操作的初始参数)、预设任务时长、时长上限和时长下限,在收到接收到结束通知或发生超时的时候,会从该表中读取系统信息。另一个数据表是数据倒计时表,存储选型为SortedSet(有序集合),将数据按照过期时间(预期时间)作为SCORE,实现按过期时间排序,然后通过 ZRANGEBYSCORE(redis的一种命令)提取出过期数据,避免对全量数据的扫描,实现低延迟获取过期数据。再一个数据表是数据信息表,存储选型为Hash(哈希表),记录数据信息,例如,可包括开始时间、剩余重试次数以及重试的请求参数(重试参数)等,重试次数用尽之后,如果没有设置多级重试,则清空该第一处理任务有关的记录,如果有多级重试,会将再次恢复,等待下一轮超时,其中数据倒计时表和数据信息表,都是多分片存储,采用一致性hash映射分片位置,具有较好的容错性和可扩展性。超时管理系统的实际工作场景是多进程多线程的,为了避免同一条过期数据被多次消费,使用lua脚本实现过期数据消费的原子性。
在本公开中使用按时间采样的耗时滑动窗口计算目标分位值的方式,让预设任务时长可以根据耗时滑动窗口中最新的处理耗时进行自适应。图 5为时间采样耗时滑动窗口示意图,耗时滑动窗口大小为4,滑动步长为1 秒,目标系统(目标业务系统)每秒进入超时管理系统的数据个数为2,耗时滑动窗口向前滑动一格,在最近一秒输入的多个数据中,采样一个数据放在窗口最前端,挤出窗口最后一个数据,以此往复,不断滑动采样,更新耗时滑动窗口中的记录。图6为自适应预设任务时长调节示意图,设定有自适应调节的时长上限(上限值)和时长下限(下限值),只在时长下限到时长上限的调节范围(自适应调节范围)内进行自适应调节,时长下限的选择可以覆盖目标系统正常情况下的大部分耗时,时长上限避免无限自适应。在自适应调节范围内,超时管理系统可根据耗时滑动窗口计算目标分位耗时(即目标分位置对应的耗时),通常可选用90分位值,将目标分位耗时乘以预设调节系数K,得到实际的自适应预设任务时长,K 的大小会影响重试的灵敏度。出于性能考虑,耗时滑动窗口使用thread local的方式采集,每个线程独自采集,在需要读取耗时滑动窗口目标分位耗时的情况下,将所有线程的数据合并,在高并发请求的场景中,可以大大减少竞争,提高性能。
在目标系统出现故障不能处理请求,表现为没有输出流量,即断流,这种场景下重试只会起到反向作用,在本公开中采用熔断滑动窗口方法统计窗口流量,在结束计时的位置添加流量统计熔断滑动窗口,如果熔断滑动窗口中记录为空,则认为该目标系统发生断流,此时启动熔断机制,停止该目标系统的重试操作,待熔断滑窗口中包括记录,即窗口恢复,可结束熔断,此时的预设任务时长会根据实际耗时自适应,不会发生大规模的重试。在窗口恢复的过程中,设置阈值w,当熔断滑动窗口内的记录的个数大于w时结束熔断,w可以用来衡量目标系统的恢复程度,确保目标系统恢复处理能力时再启动重试机制。
通过本公开实施例的超时管理系统,系统可扩展,系统本身是多实例部署,可以根据请求大小动态扩缩容实例;存储可扩展,存储采用多分片 redis表,采用一致性hash进行负载均衡。采用耗时滑动窗口内的耗时计算该窗口内的目标分位耗时,算出新的预设任务时长,重试变得更加弹性。常态下可以降低重试间隔,异常下可以保护目标系统免受大流量重试冲击。低延迟,采用SortedSet(有序集合)作为基础存储介质,可以按照时间排序,不需要全局遍历数据,可以快速得到过期数据。具有熔断保护,通过熔断滑动窗口检测业务是否断流,断流的情况下启动熔断,避免无效重试。可支持多维度重试,可以在目标系统长时间有问题的情况下,降低数据丢失率。
如图7所示,根据本公开的实施例,本公开还提供一种超时管理装置 700,装置包括:
第一确定模块701,用于在预期时间未接收到目标系统发送的针对第一处理任务的结束通知的情况下,通过目标系统对于第一处理任务的开始时间与目标系统的预设任务时长确定超时时间;
第一发送模块702,用于在超时时间早于或等于预期时间的情况下,向目标系统发送第一请求,第一请求用于请求目标系统重新执行第一处理任务。
在一个实施例中,装置还包括:
第一更新模块,用于第一发送模块向目标系统发送第一请求之后,将开始时间更新为第一请求的发送时间;
第二更新模块,用于利用更新后的开始时间以及目标系统的预设任务时长,更新预期时间。
在一个实施例中,装置还包括:
第一存放模块,用于第一确定模块通过开始时间与目标系统的预设任务时长确定第一超时时间之前,基于目标系统的基本信息生成系统信息,并将系统信息存入数据库的系统信息表中,基本信息中包括目标系统的预设任务时长,系统信息中包括目标系统的预设任务时长。
在一个实施例中,装置还包括:
第三更新模块,用于第一存放模块将目标系统的基本信息存入数据库的系统信息表中之后,在间隔时长大于第一预设时长的情况下,根据耗时滑动窗口中记录的N个历史处理任务的耗时确定第一时长,并将目标系统的预设任务时长更新为第一时长,N为正整数;
其中,间隔时长为当前时间与第一时间之间的间隔,第一时间为距离当前时间最近的一次更新预设任务时长的时间或者为开始时间。
在一个实施例中,装置还包括:
第一接收模块,用于根据耗时滑动窗口中记录的N个历史处理任务的耗时确定第一时长之前,接收目标系统发送的针对目标历史处理任务的开始通知,目标历史处理任务为N个历史处理任务中任一任务;
耗时确定模块,用于在接收到目标系统发送的针对目标历史处理任务的结束通知的情况下,将针对目标历史处理任务的结束通知的第一接收时间与针对目标历史处理任务的开始通知的第二接收时间之间时间差确定为目标历史处理任务的耗时;
第一记录模块,用于将目标历史处理任务的耗时记录于耗时滑动窗口中。
在一个实施例中,装置还包括:
第二接收模块,用于通过开始时间与目标系统的预设任务时长确定第一超时时间之前,接收目标系统发送的针对第一处理任务的开始通知,针对第一处理任务的开始通知中包括第一处理任务的标识;
计算模块,用于基于第一处理任务的标识,计算目标哈希值;
第二存放模块,用于在数据库中目标哈希值对应的分片中不包括第一处理任务的标识的情况下,基于基本信息确定预期时间以及目标数据信息,并将预期时间与第一处理任务的标识关联存入数据库中数据倒计时表的分片中以及将目标数据信息与第一处理任务的标识存入数据库中数据信息表的分片中。
在一个实施例中,装置还包括:
删除模块,用于在预期时间之前接收到目标系统发送的针对第一处理任务的结束通知的情况下,将数据倒计时表的分片中预期时间与第一处理任务的标识删除,以及将数据信息表的分片中目标数据信息与第一处理任务的标识删除;
其中,该结束通知中包括第一处理任务的标识。
在一个实施例中,系统信息中还包括时长上限和时长下限;
将目标系统的预设任务时长更新为第一时长包括以下任一项:
在第一时长在时长下限到时长上限的范围内的情况下,将目标系统的预设任务时长更新为第一时长;
在第一时长大于时长上限的情况下,将第一时长更新为时长上限,将目标系统的预设任务时长更新为更新后的第一时长;
在第一时长小于时长下限的情况下,将第一时长更新为时长下限,将目标系统的预设任务时长更新为更新后的第一时长。
在一个实施例中,向目标系统发送第一请求,包括:
在熔断滑动窗口中记录不为空的情况下,向目标系统发送第一请求;
熔断滑动窗口用于记录目标系统发送的结束通知,其中,熔断滑动窗口中的记录的时长大于第二预设时长的情况下,将记录从熔断滑动窗口中删除,若熔断窗口中的记录为空,则启动熔断机制,在熔断机制下,停止向目标系统发送用于请求目标系统执行处理任务的请求。
在一个实施例中,向目标系统发送第一请求,包括:
在剩余重试次数不为零的情况下,向目标系统发送第一请求;
其中,剩余重试次数的初始值为目标系统的重试次数,每向目标系统发送一次用于请求目标系统重新执行第一处理任务的请求,剩余重试次数减一。
在一个实施例中,装置还包括:
第四更新模块,用于在超时时间晚于预期时间的情况下,将预期时间更新为超时时间。
上述各实施例的超时管理装置为实现上述各实施例的超时管理方法的装置,技术特征对应,技术效果对应,在此不再赘述。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质以及一种计算机程序产品。
本公开实施例的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本公开所提供的超时管理方法。
本公开实施例的计算机程序产品,包括计算机程序,所述计算机程序用于使计算机执行本公开各实施例提供的超时管理方法。
图8示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图8所示,电子设备800包括计算单元801,其可以根据存储在只读存储器(ROM)802中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序,来执行各种适当的动作和处理。在RAM803中,还可存储设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
电子设备800中的多个部件连接至I/O接口805,包括:输入单元 806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许电子设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(I)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如超时管理方法。例如,在一些实施例中,超时管理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元 808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到 RAM803并由计算单元801执行时,可以执行上文描述的超时管理方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行超时管理方法。本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备 (CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入) 来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网和区块链网络。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (17)

1.一种超时管理方法,所述方法包括:
在预期时间未接收到目标系统发送的针对第一处理任务的结束通知的情况下,通过所述目标系统对于所述第一处理任务的开始时间与所述目标系统的预设任务时长确定超时时间;
在所述超时时间早于或等于所述预期时间的情况下,向所述目标系统发送第一请求,所述第一请求用于请求所述目标系统重新执行所述第一处理任务;
其中,所述向所述目标系统发送第一请求之后,还包括:
将所述开始时间更新为所述第一请求的发送时间;
利用更新后的所述开始时间以及所述目标系统的预设任务时长,更新所述预期时间。
2.根据权利要求1所述的方法,其中,所述通过开始时间与所述目标系统的预设任务时长确定第一超时时间之前,还包括:
基于所述目标系统的基本信息生成系统信息,并将所述系统信息存入数据库的系统信息表中,所述基本信息中包括所述目标系统的预设任务时长,所述系统信息中包括所述目标系统的预设任务时长。
3.根据权利要求2所述的方法,其中,所述将所述目标系统的基本信息存入数据库的系统信息表中之后,还包括:
在间隔时长大于第一预设时长的情况下,根据耗时滑动窗口中记录的N个历史处理任务的耗时确定第一时长,并将所述目标系统的预设任务时长更新为所述第一时长,N为正整数;
其中,所述间隔时长为当前时间与第一时间之间的间隔,所述第一时间为距离所述当前时间最近的一次更新所述预设任务时长的时间或者为所述开始时间。
4.根据权利要求3所述的方法,其中,所述根据耗时滑动窗口中记录的N个历史处理任务的耗时确定第一时长之前,还包括:
接收所述目标系统发送的针对目标历史处理任务的开始通知,所述目标历史处理任务为所述N个历史处理任务中任一任务;
在接收到所述目标系统发送的针对所述目标历史处理任务的结束通知的情况下,将针对所述目标历史处理任务的结束通知的第一接收时间与针对所述目标历史处理任务的开始通知的第二接收时间之间时间差确定为所述目标历史处理任务的耗时;
将所述目标历史处理任务的耗时记录于所述耗时滑动窗口中。
5.根据权利要求2所述的方法,其中,所述通过开始时间与所述目标系统的预设任务时长确定第一超时时间之前,还包括:
接收所述目标系统发送的针对所述第一处理任务的开始通知,针对所述第一处理任务的开始通知中包括所述第一处理任务的标识;
基于所述第一处理任务的标识,计算目标哈希值;
在所述数据库中所述目标哈希值对应的分片中不包括所述第一处理任务的标识的情况下,基于所述基本信息确定所述预期时间以及目标数据信息,并将所述预期时间与所述第一处理任务的标识关联存入所述数据库中数据倒计时表的所述分片中以及将所述目标数据信息与所述第一处理任务的标识存入所述数据库中数据信息表的所述分片中。
6.根据权利要求5所述的方法,其中,所述方法还包括:
在所述预期时间之前接收到所述目标系统发送的针对所述第一处理任务的结束通知的情况下,将所述数据倒计时表的所述分片中所述预期时间与所述第一处理任务的标识删除,以及将所述数据信息表的所述分片中所述目标数据信息与所述第一处理任务的标识删除;
其中,所述结束通知中包括所述第一处理任务的标识。
7.根据权利要求3所述的方法,其中,所述系统信息中还包括时长上限和时长下限;
所述将所述目标系统的预设任务时长更新为所述第一时长包括以下任一项:
在所述第一时长在所述时长下限到所述时长上限的范围内的情况下,将所述目标系统的预设任务时长更新为所述第一时长;
在所述第一时长大于所述时长上限的情况下,将所述第一时长更新为所述时长上限,将所述目标系统的预设任务时长更新为更新后的所述第一时长;
在所述第一时长小于所述时长下限的情况下,将所述第一时长更新为所述时长下限,将所述目标系统的预设任务时长更新为更新后的所述第一时长。
8.根据权利要求1所述的方法,其中,所述向所述目标系统发送第一请求,包括:
在熔断滑动窗口中记录不为空的情况下,向所述目标系统发送所述第一请求;
所述熔断滑动窗口用于记录所述目标系统发送的结束通知,其中,所述熔断滑动窗口中的记录的时长大于第二预设时长的情况下,将所述记录从所述熔断滑动窗口中删除,若所述熔断窗口中的记录为空,则启动熔断机制,在所述熔断机制下,停止向所述目标系统发送用于请求所述目标系统执行处理任务的请求。
9.根据权利要求1所述的方法,其中,所述向所述目标系统发送第一请求,包括:
在剩余重试次数不为零的情况下,向所述目标系统发送第一请求;
其中,所述剩余重试次数的初始值为所述目标系统的重试次数,每向所述目标系统发送一次用于请求所述目标系统重新执行所述第一处理任务的请求,所述剩余重试次数减一。
10.一种超时管理装置,所述装置包括:
第一确定模块,用于在预期时间未接收到目标系统发送的针对第一处理任务的结束通知的情况下,通过所述目标系统对于所述第一处理任务的开始时间与所述目标系统的预设任务时长确定超时时间;
第一发送模块,用于在所述超时时间早于或等于所述预期时间的情况下,向所述目标系统发送第一请求,所述第一请求用于请求所述目标系统重新执行所述第一处理任务;
其中,还包括:
第一更新模块,用于所述第一发送模块向所述目标系统发送第一请求之后,将所述开始时间更新为所述第一请求的发送时间;
第二更新模块,用于利用更新后的所述开始时间以及所述目标系统的预设任务时长,更新所述预期时间。
11.根据权利要求10所述的装置,其中,还包括:
第一存放模块,用于所述第一确定模块通过开始时间与所述目标系统的预设任务时长确定第一超时时间之前,基于所述目标系统的基本信息生成系统信息,并将所述系统信息存入数据库的系统信息表中,所述基本信息中包括所述目标系统的预设任务时长,所述系统信息中包括所述目标系统的预设任务时长。
12.根据权利要求11所述的装置,其中,还包括:
第三更新模块,用于所述第一存放模块将所述目标系统的基本信息存入数据库的系统信息表中之后,在间隔时长大于第一预设时长的情况下,根据耗时滑动窗口中记录的N个历史处理任务的耗时确定第一时长,并将所述目标系统的预设任务时长更新为所述第一时长,N为正整数;
其中,所述间隔时长为当前时间与第一时间之间的间隔,所述第一时间为距离所述当前时间最近的一次更新所述预设任务时长的时间或者为所述开始时间。
13.根据权利要求12所述的装置,其中,还包括:
第一接收模块,用于所述根据耗时滑动窗口中记录的N个历史处理任务的耗时确定第一时长之前,接收所述目标系统发送的针对目标历史处理任务的开始通知,所述目标历史处理任务为所述N个历史处理任务中任一任务;
耗时确定模块,用于在接收到所述目标系统发送的针对所述目标历史处理任务的结束通知的情况下,将针对所述目标历史处理任务的结束通知的第一接收时间与针对所述目标历史处理任务的开始通知的第二接收时间之间时间差确定为所述目标历史处理任务的耗时;
第一记录模块,用于将所述目标历史处理任务的耗时记录于所述耗时滑动窗口中。
14.根据权利要求11所述的装置,其中,还包括:
第二接收模块,用于所述通过开始时间与所述目标系统的预设任务时长确定第一超时时间之前,接收所述目标系统发送的针对所述第一处理任务的开始通知,针对所述第一处理任务的开始通知中包括所述第一处理任务的标识;
计算模块,用于基于所述第一处理任务的标识,计算目标哈希值;
第二存放模块,用于在所述数据库中所述目标哈希值对应的分片中不包括所述第一处理任务的标识的情况下,基于所述基本信息确定所述预期时间以及目标数据信息,并将所述预期时间与所述第一处理任务的标识关联存入所述数据库中数据倒计时表的所述分片中以及将所述目标数据信息与所述第一处理任务的标识存入所述数据库中数据信息表的所述分片中。
15.根据权利要求14所述的装置,其中,所述装置还包括:
删除模块,用于在所述预期时间之前接收到所述目标系统发送的针对所述第一处理任务的结束通知的情况下,将所述数据倒计时表的所述分片中所述预期时间与所述第一处理任务的标识删除,以及将所述数据信息表的所述分片中所述目标数据信息与所述第一处理任务的标识删除;
其中,所述结束通知中包括所述第一处理任务的标识。
16.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-9任一所述的超时管理方法。
17.一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行权利要求1-9任一所述的超时管理方法。
CN202110980230.9A 2021-08-25 2021-08-25 一种超时管理方法、装置及电子设备 Active CN113760509B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110980230.9A CN113760509B (zh) 2021-08-25 2021-08-25 一种超时管理方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110980230.9A CN113760509B (zh) 2021-08-25 2021-08-25 一种超时管理方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN113760509A CN113760509A (zh) 2021-12-07
CN113760509B true CN113760509B (zh) 2023-11-10

Family

ID=78791180

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110980230.9A Active CN113760509B (zh) 2021-08-25 2021-08-25 一种超时管理方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN113760509B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114363416B (zh) * 2021-12-29 2024-01-23 杭州趣链科技有限公司 基于区块链的跨链处理方法、装置、存储介质及服务器
CN114661510A (zh) * 2022-03-25 2022-06-24 北京百度网讯科技有限公司 一种请求超时检测方法、装置、设备以及存储介质
CN115103001B (zh) * 2022-05-10 2024-03-08 航天国政信息技术(北京)有限公司 一种通信方法、装置及电子设备
CN116208682B (zh) * 2023-05-05 2023-07-25 武汉华瑞测智能技术有限公司 交换电力信息的网络系统、设备及介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002091803A (ja) * 2000-09-13 2002-03-29 Nec Corp タイムアウト検出システム及びタイムアウト検出方法
CN1855067A (zh) * 2005-04-28 2006-11-01 华为技术有限公司 一种实时操作系统中任务挂起状态监控方法
JP2009098908A (ja) * 2007-10-16 2009-05-07 Kyocera Mita Corp タイムアウト制御システム、クライアント装置、サーバ装置およびタイムアウト制御方法
CN107171828A (zh) * 2017-04-18 2017-09-15 北京思特奇信息技术股份有限公司 一种应对远程调用依赖的超时熔断方法和系统
CN107872396A (zh) * 2016-09-26 2018-04-03 华为技术有限公司 具有超时控制的通信方法、处理设备、终端设备和服务器
CN108073446A (zh) * 2016-11-10 2018-05-25 华为技术有限公司 超时预判方法及装置
CN108509264A (zh) * 2018-03-30 2018-09-07 浙江口碑网络技术有限公司 超时任务调度系统及方法
CN109144700A (zh) * 2018-09-03 2019-01-04 阿里巴巴集团控股有限公司 超时时长的确定方法、装置、服务器和数据处理方法
CN111984455A (zh) * 2020-09-08 2020-11-24 中国农业银行股份有限公司 超时数据的检测方法、装置、服务器和计算机存储介质
CN112118329A (zh) * 2020-08-31 2020-12-22 北京奇艺世纪科技有限公司 一种网络请求处理方法、装置、电子设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7146427B2 (en) * 2002-04-23 2006-12-05 Lsi Logic Corporation Polling-based mechanism for improved RPC timeout handling
US9201719B2 (en) * 2012-03-16 2015-12-01 Infineon Technologies Ag Method and system for timeout monitoring

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002091803A (ja) * 2000-09-13 2002-03-29 Nec Corp タイムアウト検出システム及びタイムアウト検出方法
CN1855067A (zh) * 2005-04-28 2006-11-01 华为技术有限公司 一种实时操作系统中任务挂起状态监控方法
JP2009098908A (ja) * 2007-10-16 2009-05-07 Kyocera Mita Corp タイムアウト制御システム、クライアント装置、サーバ装置およびタイムアウト制御方法
CN107872396A (zh) * 2016-09-26 2018-04-03 华为技术有限公司 具有超时控制的通信方法、处理设备、终端设备和服务器
CN108073446A (zh) * 2016-11-10 2018-05-25 华为技术有限公司 超时预判方法及装置
CN107171828A (zh) * 2017-04-18 2017-09-15 北京思特奇信息技术股份有限公司 一种应对远程调用依赖的超时熔断方法和系统
CN108509264A (zh) * 2018-03-30 2018-09-07 浙江口碑网络技术有限公司 超时任务调度系统及方法
CN109144700A (zh) * 2018-09-03 2019-01-04 阿里巴巴集团控股有限公司 超时时长的确定方法、装置、服务器和数据处理方法
CN112118329A (zh) * 2020-08-31 2020-12-22 北京奇艺世纪科技有限公司 一种网络请求处理方法、装置、电子设备及存储介质
CN111984455A (zh) * 2020-09-08 2020-11-24 中国农业银行股份有限公司 超时数据的检测方法、装置、服务器和计算机存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
基于PowerPC的多任务运行状态监控方案;李英明;徐云松;包伟;;工业控制计算机(01);64-65 *
拟态多执行体架构下的超时阈值计算方法;聂德雷;赵博;王崇;汪欣;;网络与信息安全学报(10);72-80 *
超时处理程序设计;汪锐, 杨士元;微电子学与计算机(01);33-35 *

Also Published As

Publication number Publication date
CN113760509A (zh) 2021-12-07

Similar Documents

Publication Publication Date Title
CN113760509B (zh) 一种超时管理方法、装置及电子设备
CN114116613A (zh) 基于分布式文件系统的元数据查询方法、设备和存储介质
CN113364877A (zh) 数据处理方法、装置、电子设备和介质
CN109710679B (zh) 数据抽取方法及装置
CN113010535A (zh) 缓存数据的更新方法、装置、设备和存储介质
CN116540938A (zh) 数据读取方法、装置、分布式存储系统、设备和存储介质
CN115510036A (zh) 数据迁移方法、装置、设备以及存储介质
CN113986135B (zh) 处理请求的方法、装置、设备以及存储介质
US8615769B2 (en) Data processing system, data processing method, and data processing program
US8775371B2 (en) Synchronizing an auxiliary data system with a primary data system
CN114722003A (zh) 中心化数据采集方法、装置、设备及存储介质
US11500857B2 (en) Asynchronous remote calls with undo data structures
CN114564149A (zh) 一种数据存储方法、装置、设备及存储介质
CN114328739A (zh) 数据同步、读取方法及装置、电子设备、存储介质及产品
CN112883041A (zh) 一种数据更新方法、装置、电子设备及存储介质
CN113742376A (zh) 一种同步数据的方法、第一服务器以及同步数据的系统
CN113360689B (zh) 图像检索系统、方法、相关装置及计算机程序产品
CN114138397B (zh) 页面显示方法、装置、电子设备及存储介质
CN113220230B (zh) 数据导出方法及其装置、电子设备以及存储介质
US11941432B2 (en) Processing system, processing method, higher-level system, lower-level system, higher-level program, and lower-level program
CN116821046B (zh) 异构单元间的数据自动同步方法、装置、设备及介质
CN114500443B (zh) 消息推送方法、装置、系统、电子设备和存储介质
CN115858104A (zh) 一种事务提交序号快照获取方法、装置、设备及存储介质
CN115391046A (zh) 一种配额管理方法、装置、设备及介质
CN115858472A (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