一种调度重试方法及装置与流程

文档序号:15399531发布日期:2018-09-11 17:09阅读:325来源:国知局

本申请涉及计算机调度方法领域,具体涉及一种调度重试方法及装置。本申请还涉及一种用于调度重试的电子设备以及一种计算机可读存储介质。



背景技术:

在大型的网络架构中,一个业务动作请求往往需要经过多个系统调用才能完成,包括系统间调用、数据计算、数据存储等比较耗时的操作。如果遇到系统间调用异常、业务数据异常、接口调用超时等情况,发起系统需要进行调度重试,以便继续推进执行业务动作请求。调度重试策略直接决定了业务动作多久能推进到成功、调度重试消耗系统多少资源等实际问题。因此,调度重试策略的选择对于推进执行业务动作请求成功执行关系密切。

在现有技术中,调度重试策略采用了等差时间间隔的方式,应对所有异常场景。该方法存在明显的缺陷,因为等差间隔的间隔时间没法合理的确定,时间间隔太小则浪费系统资源,时间间隔大则增加了推进到成功的时间成本,针对一些无法调度重试成功的异常进行调度重试也没有必要。比如,部分异常场景调度永远不能推进到成功,需要人工介入解决,对这样异常进行调度重试就没有必要。再比如,部分异常场景不能短时间推进到成功,因此短时间内的调度重试会白白浪费时间与系统资源。另外,还有一些异常在短时间内可以调度重试成功,在等差时间间隔策略下,可能经过较长的时间间隔才进行下一次调度重试,效率较低。



技术实现要素:

本申请提供一种调度重试方法该方法,旨在解决现有调度重试方法处理异常效率低、调度重试时浪费系统资源的问题。

本申请提供的一种调度重试方法该方法,包括:根据作业调度处理异常时的具体异常情况,确定作业调度处理异常类型;根据所确定的作业调度处理异常类型,确定是否需要进行下一次调度重试;以及,若判断结果为是,则进一步包括获取与所述作业调度处理异常类型相对应的调度策略;若需要进行下一次调度重试,则采用所述调度策略确定下一次调度重试的时间,并在该时间到达时执行下一次调度重试。

可选的,所述根据作业调度处理异常时的具体异常情况确定作业调度处理异常类型之前,还包括:在接收到动作发起方的动作请求后,请求服务器校验动作发起方的信息;在接收到服务器发送的动作发起方的信息通过校验的信息后,向动作发起方确认当前动作请求已成功执行;根据所述动作请求,进行该动作请求所需作业的作业调度。

可选的,所述作业调度处理异常类型至少包括以下一种:不可通过调度重试解决的异常、依赖作业处理异常、偶发处理异常、系统异常或调用超时异常。

可选的,若所述作业调度处理异常类型为所述不可通过调度重试解决的异常,则所述根据所确定的作业调度处理异常类型,确定是否需要进行下一次调度重试的步骤中,判断结果为否;并进一步执行以下步骤:执行报警操作。

可选的,若所述作业调度处理异常类型为系统异常或调用超时异常,则所述根据所确定的作业调度处理异常类型,确定是否需要进行下一次调度重试的判断结果为是;所述调度策略为斐波那契递数列策略,即按照斐波那契递数列确定下一次调度重试的时间间隔。

可选的,若所述作业调度处理异常类型为偶发处理异常,则所述根据所确定的作业调度处理异常类型,确定是否需要进行下一次调度重试的判断结果为是;所述调度策略短时间隔策略,即为下一次调度重试的时间间隔为短时间隔。

可选的,若所述作业调度处理异常类型为依赖作业处理异常,则所述根据所确定的作业调度处理异常类型,确定是否需要进行下一次调度重试的判断结果为是;所述调度策略为长时间隔策略,即下一次调度重试的时间间隔为长时间隔。

可选的,在所述执行报警操作后,还包括:在确定所述不可通过调度重试解决的异常由账户注销而引起时,获取所述账户对应的使用者的信用信息,所述信用信息包括信用等级、信用分数;根据预设的信用管理规则,调整所述使用者的信用分数、信用等级。

可选的,所述采用所述调度策略确定下一次调度重试的时间,并在该时间到达时执行下一次调度重试具体为:采用所述斐波那契递策略确定下一次调度重试的时间;确定按照斐波那契递数列所确定的下一次调度重试的时间是否超过预设的时间间隔阀值;若未超过,则在该时间到达时执行下一次调度重试。

可选的,所述采用所述调度策略确定下一次调度重试的时间,并在该时间到达时执行下一次调度重试具体为:采用所述短时间隔策略确定下一次调度重试的时间;对所述采用所述短时间隔策略确定下一次调度重试的时间步骤的执行次数计数;在所述执行次数未超过预设的次数阀值时,执行下一次调度重试。

可选的,在所述采用所述调度策略确定下一次调度重试的时间之前,还包括:在确定所述依赖作业处理异常类型是由账号冻结而引起时,获取账号冻结信息,所述账号冻结信息包括账户冻结期限;确定所述冻结期限是否小于预设的冻结期限阀值;若是,执行下一步。

可选的,在所述确定所述冻结期限是否小于预设的冻结期限阀值之后,在所述执行下一步的步骤之前,还包括:经过所述账号冻结期限时,检测账号冻结是否已经解除;若是,执行下一步。

可选的,在采用所述调度策略确定下一次调度重试的时间之前,还包括:在确定所述依赖作业处理异常类型由账号资金不足而引起时,获取资金不足的账号的关联账号信息;将所述关联账号作为下一次调度重试的对象。

可选的,所述作业调度处理异常在以下阶段产生:本地数据处理阶段或/和调用远程系统处理阶段。

可选的,所述偶发处理异常类型,包括网络抖动引起的处理异常。

本申请还提出一种调度重试装置,其特征在于,所述装置包括:异常类型确定单元,配置用于根据作业调度处理异常时的具体异常情况,确定作业调度处理异常类型;调度策略获取单元,配置用于根据所确定的作业调度处理异常类型,确定是否需要进行下一次调度重试;以及,若判断结果为是,则进一步包括获取与所述作业调度处理异常类型相对应的调度策略;调度重试单元,配置用于若需要进行下一次调度重试,则采用所述调度策略确定下一次调度重试的时间,并在该时间到达时执行下一次调度重试。

可选的,所述装置还包括:校验请求单元,配置用于在接收到动作发起方的动作请求后,请求服务器校验动作发起方的信息;确认单元,配置用于在接收到服务器发送的动作发起方的信息通过校验的信息后,向动作发起方确认当前动作请求已成功执行;调度单元,配置用于根据所述动作请求,进行该动作请求所需作业的作业调度。

可选的,所述装置还包括:执行单元,配置用于若所述作业调度处理异常类型为所述不可通过调度重试解决的异常,则所述根据所确定的作业调度处理异常类型,确定是否需要进行下一次调度重试的步骤中,判断结果为否之后,执行以下步骤:执行报警操作。

可选的,所述调度策略获取单元进一步配置用于若所述作业调度处理异常类型为系统异常或调用超时异常,则所述根据所确定的作业调度处理异常类型,确定是否需要进行下一次调度重试的判断结果为是;所述调度策略为斐波那契递数列策略,即按照斐波那契递数列确定下一次调度重试的时间间隔。

可选的,所述调度策略获取单元进一步配置用于若所述作业调度处理异常类型为偶发处理异常,则所述根据所确定的作业调度处理异常类型,确定是否需要进行下一次调度重试的判断结果为是;所述调度策略短时间隔策略,即为下一次调度重试的时间间隔为短时间隔。

可选的,所述调度策略获取单元进一步配置用于若所述作业调度处理异常类型为依赖作业处理异常,则所述根据所确定的作业调度处理异常类型,确定是否需要进行下一次调度重试的判断结果为是;所述调度策略为长时间隔策略,即下一次调度重试的时间间隔为长时间隔。

可选的,所述装置还包括:信用信息获取单元,配置用于在确定所述不可通过调度重试解决的异常由账户注销而引起时,获取所述账户对应的使用者的信用信息,所述信用信息包括信用等级、信用分数;信用信息调整单元,配置用于根据预设的信用管理规则,调整所述使用者的信用分数、信用等级。

可选的,所述调度重试单元具体配置用于:采用所述斐波那契递策略确定下一次调度重试的时间;确定按照斐波那契递数列所确定的下一次调度重试的时间是否超过预设的时间间隔阀值;若未超过,则在该时间到达时执行下一次调度重试。

可选的,所述调度重试单元具体配置用于:采用所述短时间隔策略确定下一次调度重试的时间;对所述采用所述短时间隔策略确定下一次调度重试的时间步骤的执行次数计数;在所述执行次数未超过预设的次数阀值时,执行下一次调度重试。

可选的,所述装置还包括,账号冻结信息获取单元,配置用于在确定所述依赖作业处理异常类型是由账号冻结而引起时,获取账号冻结信息,所述账号冻结信息包括账户冻结期限;冻结期限判断单元,配置用于确定所述冻结期限是否小于预设的冻结期限阀值;若是,确定执行下一步。

可选的,所述装置还包括:检测单元,配置用于经过所述账号冻结期限时,检测账号冻结是否已经解除;若是,确定执行下一步。

可选的,所述装置还包括,关联账户信息获取单元,配置用于在确定所述依赖作业处理异常类型由账号资金不足而引起时,获取资金不足的账号的关联账号信息;调度重试对象确定单元,配置用于将所述关联账号作为下一次调度重试的对象。

本申请还提出一种用于调度重试的电子设备,其特征在于,所述电子设备包括:显示器;处理器;存储器,用于存储调度重试的程序,所述程序在被所述处理器读取执行时,执行如下操作:根据作业调度处理异常时的具体异常情况,确定作业调度处理异常类型;根据所确定的作业调度处理异常类型,确定是否需要进行下一次调度重试;以及,若判断结果为是,则进一步包括获取与所述作业调度处理异常类型相对应的调度策略;若需要进行下一次调度重试,则采用所述调度策略确定下一次调度重试的时间,并在该时间到达时执行下一次调度重试。

本申请还提出一种计算机可读存储介质,其上存储有调度重试程序,其特征在于,该程序被处理器读取执行时,执行如下操作:根据作业调度处理异常时的具体异常情况,确定作业调度处理异常类型;根据所确定的作业调度处理异常类型,确定是否需要进行下一次调度重试;以及,若判断结果为是,则进一步包括获取与所述作业调度处理异常类型相对应的调度策略;若需要进行下一次调度重试,则采用所述调度策略确定下一次调度重试的时间,并在该时间到达时执行下一次调度重试。

本申请提供的调度重试的技术方案,针对不同类型的异常,确定是否有必要进行调度重试并在确定有必要进行调度重试时获取调度重试策略。当该技术方案在确定没有必要进行调度重试时,就不执行调度重试,避免了对本没有必要进行的调度重试对系统资源的浪费。当该技术方案在确定有必要进行调度重试后,才进一步获取于所确定的异常类型相适应的调度策略,并采用该调度策略确定下一次调度重试的时间以及在该时间到达后进行调度重试,从而使得对相应的异常类型按相应策略的调度重试,即确定相应的调度重试时间而非一概适用统一的策略确定相同的时间间隔,这有利于在解决异常时花费的时间不合理的问题,以及能够解决调度重试对时系统资源的占用过多的问题,也就是解决了现有技术采用等差时间间隔确定下一次调度重试时间时所造成的解决异常效率较低、对系统资源占用较多的问题。

另外,在优选的技术方案中,对于不可通过调度重试解决的异常,就不进行调度重试,直接进行人工介入,避免了调度重试所要花费的时间以及对系统资源的占用,提高了处理效率。

在优选的技术方案中,对于系统异常或调用超时异常,采用斐波那契递数列逐渐提高下一次调度重试的时间间隔,能够先按短时间隔进行调度重试,后按长时间隔进行调度重试,使得先尝试快速解决异常,当未能快速解决异常时再在长时间隔后解决该类异常,对处理异常的效率、调度重试所需要的系统资源实现优化配置。

在优选的技术方案中,对于依赖作业处理异常,确定长时间隔后进行下一次调度重试,避免了多次短时间间隔内调度重试对系统资源的浪费。

在优选的技术方案中,对于偶发处理异常,确定短时间间隔后进行下一次调度重试,提高了处理该类异常的效率。

总之,本本实施例可以针对不同作业调度处理异常,采取不同的调度策略,提高了处理异常的效率、节省了调度重试时的系统资源。

附图说明

图1是本申请提供的调度重试方法的一个实施例的流程图;

图2是本申请图1所示的调度重试方法实施例的应用场景示意图;

图3是本申请提供的调度重试装置的一个实施例的结构示意图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。

图1是本申请提供的调度重试方法的一个实施例的流程图,图2是本申请图1所示的调度重试方法实施例的应用场景示意图。下面结合图2中所示的应用场景来阐述图1中调度重试方法的技术方案。

图2可以理解成在网络上执行扣款的业务动作场景。在该场景中,扣款业务动作请求的执行往往需要经过多次调用相应处理程序、相应处理函数、相应计算机接口、相应计算机系统等比较耗时的操作。如果等待这么多项的调用完成后再告知用户扣款成功,则需要用户等待较长的时间。

为了及时告知用户扣款成功与否的结果,实践中通常在执行多项调度任务之前,调度发起系统通常在接收到动作发起方的动作请求后,请求服务器校验动作发起方的信息。只要用户通过信息校验,就直接通知用户的扣款请求已经执行完成,后续再进行各项调用完成实际的扣款业务,以与先前对客户的通知相一致。

所述用户的信息,例如可以是用户的动作请求信息、用户的信用等级信息(如优)、信用分数信息(如701分)。所述校验可以是业务校验证,例如验证所述动作请求是否为付款动作请求。

所述校验还可以是数据校验,例如判断用户的信用等级信息、信用分数信息是否符合预定要求,比如信用等级为良以上、信用分数为650分以上。

所述校验还可以是规则校验,例如,用户的扣款动作请求是否满足预定的时间规则,如是否在时间段早晨8点到下午6点这一时间段内。

在接收到服务器发送的动作发起方的信息通过校验的信息后,再向动作发起方确认当前动作请求已成功执行。例如,当用户的动作请求信息是请求扣款信息,并且信用等级为优、信用分数701分符合预定要求时,则会接收到服务器发送的通过信息校验的通知。

其中,动作请求发起方可以是真实的用户,也可以是某个系统,调度发起系统指的是某个计算机系统。

上述过程称为同步受理阶段,在该阶段,只要用户的信息通过相关校验,则直接通知用户的动作请求成功执行,从而节省了时间,提高了用户处理动作请求的效率。

在上述同步受理阶段之后,调度发起系统才开始执行多项调用,比如调用相应处理程序、相应处理函数、相应计算机接口、相应计算机系统等比较耗时的操作,也就是根据所述动作请求,进行该动作请求所需作业的作业调度。

例如,当接收到服务器发送的通过信息校验的通知后,为了用户的账户中扣除一部分款额时,需要经过“推进订单”“获取用户账户资金信息”、“核对账户中款额是否不少于应扣款额”、“调拨自己”等步骤,针对这一系列步骤的执行所需要使用的程序、函数等进行调用。该过程称为异步处理阶段。

在异步处理阶段进行调度时,如果遇到系统间调用异常、业务数据异常、接口调用超时等情况,调度发起系统需要进行调度重试,所述调度重试指的是再次执行对所需要使用的程序、函数等的调用,以便继续推进执行业务动作请求,直至将业务动作请求执行成功。当业务动作请求执行成功后,才能与预先通知用户的动作请求消息成功已经执行相一致。

在异步处理阶段,调度发起系统进行调度重试时,需要某种调度重试策略,例如,多长时间之后再进行调度重试,这将直接决定了业务动作多久能推进到成功、调度重试消耗系统多少资源等实际问题。因此,调度重试策略的选择对于推进执行业务动作请求成功执行关系密切。

图1中所示出的调度重试方法就是对图2中所示出的异步处理过程中确定调度策略这一核心问题的解决方案,下面进行详细阐述。以下结合图1对所述调度重试方法进行详细说明。

步骤s101,根据作业调度处理异常时的具体异常情况,确定作业调度处理异常类型。

所述作业,指的是计算机领域中的术语“job”,是执行一系列步骤以完成一项或多项任务的总称。比如在用户在网络平台购物场景中,当需要在用户的账户中扣除一部分款额时,可能需要经过“获取用户账户信息”、“核对账户中款额是否不少于应扣款额”、“扣除一定的款额”等步骤,这一系列步骤可以称为一个作业。

所述作业调度指的是,为完成一项或多项任务,通常需要按照一定的顺序执行某个或某些步骤。比如上一段执行扣款任务时,需要按次序依次执行“获取用户账户信息”、“核对账户中款额是否不少于应扣款额”、“扣除一定的款额”等步骤。当执行某个步骤时,就有可能对执行该步骤所使用的程序、函数等进行调用。所述调度重试则指的是再次执行对所需要使用的程序、函数等的调用。

所述作业调度处理异常,是指作业调度处理执行过程由于某个步骤无法成功执行造成的整个作业过程无法正常推进的情况。以下都是常见的作业调度处理异常的具体异常情况以及可能的产生原因:账户注销而引起的作业调度处理异常,由于账户注销会导致无法从该账户扣款,进而导致处理异常;账号冻结或账号资金不足而引起的处理异常,如果账户冻结有可能导致无法向该账户退款等;网络抖动引起的作业调度处理异常,指由于网络系统不稳定而无法与账户进行连接等造成的短时间内的作业调度处理异常;系统异常或调用超时异常,比如长时间无法成功调用某个程序、函数等造成的作业调度处理异常。

所述作业调度处理异常类型是指对各种具体的作业调度处理异常情况的分类。显然,根据不同的目的可以从不同角度进行不同方式的分类;同一个具体的作业调度处理异常,可以根据不同的分类方式属于几种类型。本实施例中,由于分类的主要目的是确定调度重试的调度策略,因此,从对调度策略的影响角度进行分类。以上述由于账户注销而引起的调度处理异常为例。在一些场景中,账户注销将导致无法从该账户扣款,即使再次执行扣款请求,依然无法成功执行,这一类处理异常无法通过调度重试解决,可以称为不可通过调度重试解决的异常类型。再比如,上述账号冻结引起的处理异常。在一些场景中,由于该账户可能被银行账户处理系统冻结了,若对该账户进行扣款,需要等待、依赖银行账户处理系统解冻该账户,这种处理异常就可以归入依赖作业处理异常类型。再比如,上述网络抖动引起的处理异常,由于网络抖动一般是偶发的、不经常的,并且可以很快进行重新处理,所以这类处理异常可以称为偶发处理异常类型。再如,存在系统异常或调用超时异常的异常情况,需要等待不定长的时间才能再次调用,则可以归入同一个异常类型,即系统异常或者调用超时异常。由于很多作业调度系统中,会在发生作业调度处理异常时生成对应于具体异常情况的异常码,则所述根据作业调度处理异常时的具体异常情况,确定作业调度处理异常类型,可以是根据所检测到的作业调度处理异常时的具体异常情况所对应的异常码,确定作业调度处理异常类型。比如,当一种作业调度处理异常时的具体异常情况出现时(比如由于账户注销无法从该账户扣款等),相应地检测到生成的预先设定的异常码是“00000001”时,确定作业调度处理异常类型为不可通过调度重试解决的异常。

在本实施例中,上述作业调度处理异常可以在以下阶段产生:本地数据处理阶段、调用远程系统处理阶段。这是因为,执行某些动作请求时,处理异常既有可能发生在本地系统,又有可能发生在网络中的其他系统中。但不管是调度处理异常发生在本地系统上的数据处理阶段,还是发生在其他远程系统中的数据处理阶段,这些处理异常都可以由本申请的方案进行处理。

步骤s102,根据所确定的作业调度处理异常类型,确定是否需要进行下一次调度重试;以及,若判断结果为是,则进一步包括获取与所述作业调度处理异常类型相对应的调度策略。

所述与所述作业调度处理异常类型相对应的调度策略,主要内容是经过多长时间才再次尝试执行目标任务,以及是否需要进行其他的相关处理。比如,经过2秒钟才再次执行扣款任务。

所述“根据所确定的作业调度处理异常类型,确定是否需要进行下一次调度重试;以及,若判断结果为是,则进一步包括获取与所述作业调度处理异常类型相对应的调度策略”具体可以为以下至少一种情况:

若所述作业调度处理异常类型为系统异常或调用超时异常,则所述根据所确定的作业调度处理异常类型,确定是否需要进行下一次调度重试的判断结果为是;所述调度策略为斐波那契递数列策略,即按照斐波那契递数列确定下一次调度重试的时间间隔。所述斐波那契递数列指的是这样一个数列2,3,5,8,13,其特点是每一项都等于前两项之和。例如,如果当前调用超时,比如调用某函数,调用了2秒钟还没有执行成功,这一类处理异常为系统异常或调用超时异常。对这类系统异常或调用超时异常,确定是否需要进行下一次调度重试的步骤中,判断结果为是;进一步确定下一次调度重试的时间间隔为3秒钟。如果再没有执行成功,则进一步确定下一次调度重试的时间间隔为5秒钟。

若所述作业调度处理异常类型为偶发处理异常,则所述根据所确定的作业调度处理异常类型,确定是否需要进行下一次调度重试的判断结果为是;所述调度策略短时间隔策略。例如,由于系统运行部稳定而偶发的连接错误,这一类处理异常为偶发处理异常。对这类偶发处理异常,确定是否需要进行下一次调度重试的步骤中,判断结果为是;进一步确定下一次调度重试的时间间隔为短时间隔,比如可以是0.5秒钟。

若所述作业调度处理异常类型为依赖作业处理异常,则所述根据所确定的作业调度处理异常类型,确定是否需要进行下一次调度重试的判断结果为是;所述调度策略为长时间隔策略。例如,账号冻结而引起的处理异常,其原因是该账户被银行账户处理系统冻结了,在一些场景中,若对该账户进行扣款,需要等待、依赖银行账户处理系统解冻该账户,这种处理异常为依赖作业处理异常类型。对这类依赖作业处理异常类型,确定是否需要进行下一次调度重试的步骤中,判断结果为是;进一步确定下一次调度重试的时间间隔为较长的时间间隔,比如经过2天。

若所述作业调度处理异常类型为不可通过调度重试解决的异常类型,则所述根据所确定的作业调度处理异常类型,确定是否需要进行下一次调度重试的判断结果为否;以及,若判断结果为否,并进一步执行以下步骤:执行报警操作。例如,由于账户注销无法从该账户扣款等,即使再次执行扣款请求,依然无法成功,这一类处理异常为不可通过调度重试解决的异常类型。对这类不可通过调度重试解决的异常类型,确定是否需要进行下一次调度重试的步骤中,判断结果为否;直接执行报警操作步骤以提醒人工介入,进行人工相应的处理。在确定所述不可通过调度重试解决的异常是由账户注销而引起时,还可以获取所述账户对应的使用者的信用信息,所述信用信息包括信用等级、信用分数。例如,可以获取的信息等级信息,比如“优”、“良”等。还可以是信用分数信息,比如“651”分、“701”分等。另外,还可以进一步地根据预设的信用管理规则,调整所述使用者的信用分数、信用等级。例如,所述预设的信用管理规则可以是:在未扣款前而注销账户,则降低一个等级或者将信用分数调低50分。那么,在本步骤,就直接调低信用等级与信用分数。据此可以取得如下技术效果:在异常情况下,针对不可通过调度重试解决的异常,直接提醒人工介入,提高了调度重试的效率。同时,通过对用户的信用信息调整,提高了交易的信用安全。

在根据步骤s102确定要进行下一次调度重试并获取到相应调度策略之后,继续按照下述步骤s103所述,采用所述调度策略确定下一次调度重试的时间,并在该时间到达时执行下一次调度重试,下面详述。

步骤s103,若需要进行下一次调度重试,则采用所述调度策略确定下一次调度重试的时间,并在该时间到达时执行下一次调度重试。

当基于步骤s102确定作业调度处理异常类型、是否需要进行下一次调度重试以及若判断结果为是时获取与所述作业调度处理异常类型相对应的调度策略之后,便采用所述调度策略确定下一次调度重试的时间,并在该时间到达时执行下一次调度重试。

例如,当基于步骤s102确定了系统异常或调用超时异常,并确定需要进行下一次调度重试以及进一步获取到与所述系统异常或调用超时异常相对应的斐波那契递数列策略,即按照斐波那契递数列确定下一次调度重试的时间间隔之后,采用所述调度策略确定下一次调度重试的时间,并在该时间到达时执行下一次调度重试;在采用上述调度重试策略后,为了避免调度重试在始终不成功的情况下被反复执行造成系统资源的过渡消耗,可以结合不同的调度重试策略设定一个终止调度重试的策略,例如,在采用所述斐波那契递策略的情况下,具体执行下述步骤:首先,采用所述斐波那契递策略确定下一次调度重试的时间。比如,调用了2秒钟还没有执行成功,确定下一次调度重试的时间间隔为3秒钟,如果再没有执行成功,确定下一次调度重试的时间间隔为5秒钟。其次,确定按照斐波那契递数列所确定的下一次调度重试的时间是否超过预设的时间间隔阀值。若未超过,则在该时间到达时执行下一次调度重试。例如,所确定的下一次调度重试的时间间隔5秒钟小于预设的时间间隔阀值20秒钟,则5秒钟后执行下一次调度重试。如果调度重试多次以后,再一次确定调度重试的时间间隔超过20秒了,则可以终止进行下一次调度重试。

再例如,当基于步骤s102确定了偶发处理异常,并确定需要进行下一次调度重试以及进一步获取到与所述偶发处理异常相对应的短时间隔策略,即下一次调度重试的时间间隔为短时间隔之后,采用所述调度策略确定下一次调度重试的时间,并在该时间到达时执行下一次调度重试;此外,还为其设置一个以重试次数为终止依据的终止调度重试的策略。具体执行过程为:首先,采用所述短时间隔策略确定下一次调度重试的时间。例如,由于系统运行部稳定而偶发的连接错误,这一类处理异常为偶发处理异常。对这类偶发处理异常,确定下一次调度重试的时间间隔为短时间隔是0.5秒钟。其次,对所述采用所述短时间隔策略确定下一次调度重试的时间步骤的执行次数计数;在所述执行次数未超过预设的次数阀值时,执行下一次调度重试。例如,当每次确定下一次调度重试的短时间隔后,计数器(counter)都加1,当执行次数比如5次小于预设的执行次数阀值20次时,执行下一次调度重试。其中,计数器是允许用户在线程组中任何位置创建引用的计数器。计数器配置允许用户配置最大值(比如20次),可以将计数器设置为循环到20次后结束。

再例如,当基于步骤s102确定了依赖作业处理异常,还可以继续确定所述依赖作业处理异常类型是否由账号冻结而引起时,若是由账号冻结而引起,可以获取账号冻结信息,所述账号冻结信息包括账户冻结期限。例如,账户冻结期限信息可能是冻结24小时。进而可以继续确定所述冻结期限是否小于预设的冻结期限阀值。例如,账户冻结期限信息是冻结24小时,预设的冻结期限阀值是48小时,此时确定结果为“是”。若是,经过所述账号冻结期限时,还可以检测账号冻结是否已经解除。例如,当经过账户冻结期限24小时后,检测账户冻结是否已经解除。若已经解除,才进行下一次调度重试,即采用所述调度策略确定下一次调度重试的时间,并在该时间到达时执行下一次调度重试。据此,在依赖作业处理异常类型是由账号冻结而引起时的异常情况下,通过确定所述冻结期限小于预设的冻结期限阀值时才执行下一次调度重试,避免了冻结期限过长时而进行的无效调度重试,提高了调度重试的效率。

再例如,当基于步骤s102确定了依赖作业处理异常类型,还可以继续确定所述依赖作业处理异常类型是否由由账号资金不足而引起。若是,还可以获取资金不足的账号的关联账号信息。例如,当前账户资金不足,就获取当前账户相关联的账户信息。进一步,将所述关联账号作为下一次调度重试的对象。例如,由于当前账户资金不足,直接进行下一次扣款操作,仍然可能无法成功执行,因此,直接针对所关联的其他账户进行调度重试,即对其他关联账户执行扣款操作。从而在需要进行下一次调度重试时,采用所述调度策略确定下一次调度重试的时间,并在该时间到达时执行下一次调度重试。据此,在所述依赖作业处理异常类型由账号资金不足而引起时的异常情况下,通过将关联账号作为下一次调度重试的对象,提高了调度重试的针对性。

根据上文第一实施例的技术方案,下面再描述一个在出现退款业务处理异常时,根据上文第一实施例的技术方案所进行的处理过程。

步骤s201,根据作业调度处理异常时的具体异常情况,确定作业调度处理异常类型。

向用户的账户执行退款业务而没有执行成功,这种异常情况可能由于账户注销而导致的,还可能是由于账户被冻结而导致的,还可能是由于网络系统不稳定而无法与账户进行连接而导致的,也有可能是长时间无法成功调用某个程序而导致的。由于账户注销将导致无法向账户退款,即使再次执行退款任务,依然无法成功执行,这一类处理异常无法通过调度重试解决,可以称为不可通过调度重试解决的异常类型。由于账户被银行账户处理系统冻结时,若对该账户进行退款,需要等待、依赖银行账户处理系统解冻该账户,这种处理异常就可以归入依赖作业处理异常类型。由于网络抖动而引起的无法与用户的账户实现连接这种异常一般是偶发的、不经常的,并且可以很快进行重新处理,所以这类处理异常可以称为偶发处理异常类型。而调用某个程序等超时异常的异常情况,需要等待不定长的时间才能再次调用,则可以归入系统异常或者调用超时异常。

上述可能发生的作业调度处理异常,可以是根据所检测到的具体异常情况所对应的异常码,来确定作业调度处理异常类型。如由于账户注销无法向该账户退款等,相应地检测到生成的预先设定的异常码是“00000003”时,确定作异常为不可通过调度重试解决的异常。

步骤s202,根据所确定的作业调度处理异常类型,确定是否需要进行下一次调度重试;以及,若判断结果为是,则进一步包括获取与所述作业调度处理异常类型相对应的调度策略。

若无法执行退款是由于长时间无法成功调用某个程序而导致时,则确定需要进行下一次调度重试,调度策略为斐波那契递数列策略,即按照斐波那契递数列确定下一次调度重试的时间间隔。例如,如果当前调用超时,比如调用某函数,调用了2秒钟还没有执行成功,则下一次调度重试的时间间隔为3秒钟。如果再没有执行成功,则下一次调度重试的时间间隔为5秒钟。

若无法执行退款是由网络系统不稳定而无法与账户进行连接而导致的,则确定需要进行下一次调度重试,调度策略短时间隔策略。例如,下一次调度重试的时间间隔为0.5秒钟。

若无法执行退款是由账户被银行账户处理系统冻结而导致的,则确定需要进行下一次调度重试,调度策略为长时间隔策略。例如,下一次调度重试的时间间隔为2天。

若无法执行退款是由账户被注销而导致的,则确定不需要进行下一次调度重试,并进一步执行以下步骤:执行报警操作。通过直接执行报警操作步骤提醒人工介入,进行人工相应的处理。此外,还可以获取所述账户对应的使用者的信用信息,所述信用信息包括信用等级、信用分数。另外,还可以进一步地根据预设的信用管理规则,调整所述使用者的信用分数、信用等级。

步骤s203,若需要进行下一次调度重试,则采用所述调度策略确定下一次调度重试的时间,并在该时间到达时执行下一次调度重试。

当基于步骤s202确定作业调度处理异常类型、是否需要进行下一次调度重试以及若判断结果为是时获取与所述作业调度处理异常类型相对应的调度策略之后,便采用所述调度策略确定下一次调度重试的时间,并在该时间到达时执行下一次调度重试,具体分以下几种情况:

若无法执行退款是由于长时间无法成功调用某个程序而导致时,按照斐波那契递数列确定下一次调度重试的时间间隔,并在该时间到达时执行下一次调度重试。为了避免调度重试在始终不成功的情况下被反复执行造成系统资源的过渡消耗,可以设定一个终止调度重试的策略,具体执行下述步骤:确定下一次调度重试的时间是否超过预设的时间间隔阀值。若未超过,则在该时间到达时执行下一次调度重试。例如,确定的下一次调度重试的时间间隔5秒钟小于预设的时间间隔阀值20秒钟,则5秒钟后执行下一次调度重试。如果调度重试多次以后,再一次确定调度重试的时间间隔超过20秒了,则可以终止进行下一次调度重试。

若无法执行退款是由网络系统不稳定而无法与账户进行连接导致时,按短时间隔策略确定下一次调度重试的时间,并在该时间到达时执行下一次调度重试。此外,还为其设置一个以重试次数为终止依据的终止调度重试的策略。具体执行过程为:首先,对所述采用所述短时间隔策略确定下一次调度重试的时间步骤的执行次数计数;在所述执行次数未超过预设的次数阀值时,执行下一次调度重试。例如,当每次确定下一次调度重试的短时间隔后,计数器(counter)都加1,当执行次数比如5次小于预设的执行次数阀值20次时,执行下一次调度重试。其中,计数器是允许用户在线程组中任何位置创建引用的计数器。计数器配置允许用户配置最大值(比如20次),可以将计数器设置为循环到20次后结束。

若无法执行退款是由于账户被银行账户处理系统冻结而导致时,可以获取账号冻结信息,所述账号冻结信息包括账户冻结期限。例如,账户冻结期限信息可能是冻结24小时。进而可以继续确定所述冻结期限是否小于预设的冻结期限阀值。例如,预设的冻结期限阀值是48小时,此时确定结果为“是”。若是,经过所述账号冻结期限时,还可以检测账号冻结是否已经解除。例如,当经过账户冻结期限24小时后,检测账户冻结是否已经解除。若已经解除,才进行下一次调度重试,即采用长时间隔调度策略确定下一次调度重试的时间,并在该时间到达时执行下一次调度重试。据此,通过确定所述冻结期限小于预设的冻结期限阀值时才执行下一次调度重试,避免了冻结期限过长时而进行的无效调度重试,提高了调度重试的效率。

若无法执行退款是由于账户被银行账户处理系统冻结而导致时,还可以获取资金不足的账号的关联账号信息。进一步,将所述关联账号作为下一次调度重试的对象。例如,直接针对所关联的其他账户进行调度重试,即对其他关联账户执行扣款操作,从而在需要进行下一次调度重试时,采用长时间隔调度策略确定下一次调度重试的时间,并在该时间到达时执行下一次调度重试。据此,通过将关联账号作为下一次调度重试的对象,提高了调度重试的针对性。

本申请提供的调度重试的技术方案,针对不同类型的异常,确定是否有必要进行调度重试并在确定有必要进行调度重试时获取调度重试策略。当该技术方案在确定没有必要进行调度重试时,就不执行调度重试,避免了对本没有必要进行的调度重试对系统资源的浪费。当该技术方案在确定有必要进行调度重试后,才进一步获取于所确定的异常类型相适应的调度策略,并采用该调度策略确定下一次调度重试的时间以及在该时间到达后进行调度重试,从而使得对相应的异常类型按相应策略的调度重试,即确定相应的调度重试时间而非一概适用统一的策略确定相同的时间间隔,这有利于在解决异常时花费的时间不合理的问题,以及能够解决调度重试对时系统资源的占用过多的问题,也就是解决了现有技术采用等差时间间隔确定下一次调度重试时间时所造成的解决异常效率较低、对系统资源占用较多的问题。

另外,在优选的技术方案中,对于不可通过调度重试解决的异常,就不进行调度重试,直接进行人工介入,避免了调度重试所要花费的时间以及对系统资源的占用,提高了处理效率。

在优选的技术方案中,对于系统异常或调用超时异常,采用斐波那契递数列逐渐提高下一次调度重试的时间间隔,能够先按短时间隔进行调度重试,后按长时间隔进行调度重试,使得先尝试快速解决异常,当未能快速解决异常时再在长时间隔后解决该类异常,对处理异常的效率、调度重试所需要的系统资源实现优化配置。

在优选的技术方案中,对于依赖作业处理异常,确定长时间隔后进行下一次调度重试,避免了多次短时间间隔内调度重试对系统资源的浪费。

在优选的技术方案中,对于偶发处理异常,确定短时间间隔后进行下一次调度重试,提高了处理该类异常的效率。

总之,本本实施例可以针对不同作业调度处理异常,采取不同的调度策略,提高了处理异常的效率、节省了调度重试时的系统资源。

图3是本申请提供的调度重试装置的一个实施例的结构示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关的部分请参见上述提供的方法实施例的对应说明即可。下面描述的装置实施例仅仅是示意性的。

本申请提供的度重试装置,包括:异常类型确定单元301、调度策略获取单元302、调度重试单元303。

在本实施例中,异常类型确定单元301,配置用于根据作业调度处理异常时的具体异常情况,确定作业调度处理异常类型;调度策略获取单元302,配置用于根据所确定的作业调度处理异常类型,确定是否需要进行下一次调度重试;以及,若判断结果为是,则进一步包括获取与所述作业调度处理异常类型相对应的调度策略;调度重试单元303,配置用于若需要进行下一次调度重试,则采用所述调度策略确定下一次调度重试的时间,并在该时间到达时执行下一次调度重试。

可选的,所述装置还包括:校验请求单元,配置用于在接收到动作发起方的动作请求后,请求服务器校验动作发起方的信息;确认单元,配置用于在接收到服务器发送的动作发起方的信息通过校验的信息后,向动作发起方确认当前动作请求已成功执行;调度单元,配置用于根据所述动作请求,进行该动作请求所需作业的作业调度。

可选的,所述装置还包括:执行单元,配置用于若所述作业调度处理异常类型为所述不可通过调度重试解决的异常,则所述根据所确定的作业调度处理异常类型,确定是否需要进行下一次调度重试的步骤中,判断结果为否之后,执行以下步骤:执行报警操作。

可选的,所述调度策略获取单元进一步配置用于若所述作业调度处理异常类型为系统异常或调用超时异常,则所述根据所确定的作业调度处理异常类型,确定是否需要进行下一次调度重试的判断结果为是;所述调度策略为斐波那契递数列策略,即按照斐波那契递数列确定下一次调度重试的时间间隔。

可选的,所述调度策略获取单元进一步配置用于若所述作业调度处理异常类型为偶发处理异常,则所述根据所确定的作业调度处理异常类型,确定是否需要进行下一次调度重试的判断结果为是;所述调度策略短时间隔策略,即为下一次调度重试的时间间隔为短时间隔。

可选的,所述调度策略获取单元进一步配置用于若所述作业调度处理异常类型为依赖作业处理异常,则所述根据所确定的作业调度处理异常类型,确定是否需要进行下一次调度重试的判断结果为是;所述调度策略为长时间隔策略,即下一次调度重试的时间间隔为长时间隔。

可选的,所述装置还包括:信用信息获取单元,配置用于在确定所述不可通过调度重试解决的异常由账户注销而引起时,获取所述账户对应的使用者的信用信息,所述信用信息包括信用等级、信用分数;信用信息调整单元,配置用于根据预设的信用管理规则,调整所述使用者的信用分数、信用等级。

可选的,其特征在于,所述调度重试单元具体配置用于:采用所述斐波那契递策略确定下一次调度重试的时间;确定按照斐波那契递数列所确定的下一次调度重试的时间是否超过预设的时间间隔阀值;若未超过,则在该时间到达时执行下一次调度重试。

可选的,所述调度重试单元具体配置用于:采用所述短时间隔策略确定下一次调度重试的时间;对所述采用所述短时间隔策略确定下一次调度重试的时间步骤的执行次数计数;在所述执行次数未超过预设的次数阀值时,执行下一次调度重试。

可选的,所述装置还包括,账号冻结信息获取单元,配置用于在确定所述依赖作业处理异常类型是由账号冻结而引起时,获取账号冻结信息,所述账号冻结信息包括账户冻结期限;冻结期限判断单元,配置用于确定所述冻结期限是否小于预设的冻结期限阀值;若是,确定执行下一步。

可选的,所述装置还包括:检测单元,配置用于经过所述账号冻结期限时,检测账号冻结是否已经解除;若是,确定执行下一步。

可选的,所述装置还包括,关联账户信息获取单元,配置用于在确定所述依赖作业处理异常类型由账号资金不足而引起时,获取资金不足的账号的关联账号信息;调度重试对象确定单元,配置用于将所述关联账号作为下一次调度重试的对象。

本申请提出一种用于调度重试的电子设备,由于电子设备实施例基本相似于方法实施例,所以描述得比较简单,相关的部分请参见上述提供的方法实施例的对应说明即可。下面描述的电子设备实施例仅仅是示意性的。

本申请还提出的一种用于调度重试的电子设备,包括:显示器;处理器;存储器,用于存储调度重试的程序,所述程序在被所述处理器读取执行时,执行如下操作:根据作业调度处理异常时的具体异常情况,确定作业调度处理异常类型;根据所确定的作业调度处理异常类型,确定是否需要进行下一次调度重试;以及,若判断结果为是,则进一步包括获取与所述作业调度处理异常类型相对应的调度策略;若需要进行下一次调度重试,则采用所述调度策略确定下一次调度重试的时间,并在该时间到达时执行下一次调度重试。

本申请还提出一种计算机可读存储介质,由于计算机可读存储介质实施例基本相似于方法实施例,所以描述得比较简单,相关的部分请参见上述提供的方法实施例的对应说明即可。下面描述的计算机可读存储介质实施例仅仅是示意性的。

本申请还提出的一种计算机可读存储介质,其上存储有调度重试程序,,该程序被处理器读取执行时,执行如下操作:根据作业调度处理异常时的具体异常情况,确定作业调度处理异常类型;根据所确定的作业调度处理异常类型,确定是否需要进行下一次调度重试;以及,若判断结果为是,则进一步包括获取与所述作业调度处理异常类型相对应的调度策略;若需要进行下一次调度重试,则采用所述调度策略确定下一次调度重试的时间,并在该时间到达时执行下一次调度重试。

本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1