CN111459754B - 异常任务的处理方法、装置、介质及电子设备 - Google Patents
异常任务的处理方法、装置、介质及电子设备 Download PDFInfo
- Publication number
- CN111459754B CN111459754B CN202010226976.6A CN202010226976A CN111459754B CN 111459754 B CN111459754 B CN 111459754B CN 202010226976 A CN202010226976 A CN 202010226976A CN 111459754 B CN111459754 B CN 111459754B
- Authority
- CN
- China
- Prior art keywords
- task
- reprocessing
- target
- thread
- time
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请的实施例提供了一种异常任务的处理方法,包括:在监测到系统中目标业务场景下目标任务出现异常时,解析所述目标任务在目标业务场景下进行重处理所对应的任务参数,得到任务重处理信息;根据所述任务重处理信息,确定是否触发对所述目标任务进行重处理;若确定对所述目标任务进行重处理,则为所述目标任务的重处理任务计算预计等待时长;根据所述预计等待时长为所述重处理任务分配线程;将所述重处理任务加载至所分配的所述线程,以执行所述重处理任务。实现了调度与分配的分离,提高了重处理的效率。
Description
技术领域
本申请涉及计算机及通信技术领域,具体而言,涉及一种异常任务的处理方法、装置、介质及电子设备。
背景技术
不管是在流程审批系统中还是在数据库系统中,均可能存在任务出现异常的情况。现有技术中,为处理异常任务,需要针对异常任务所在的业务场景来分别编写重处理代码进行处理。
此种通过针对性编写重处理代码的方式,如果异常较多,一方面针对性进行重处理代码编写的效率较低,另一方面,在重处理代码中是同步实现任务调度和资源分配的,而如果任务调度出现故障或者资源分配出现故障则可能影响其他异常任务的处理,从而导致异常任务处理的效率低。
发明内容
本申请的实施例提供了一种异常任务的处理方法、装置、介质及电子设备,进而至少在一定程度上可以提高异常任务的处理效率。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请实施例的一个方面,提供了一种异常任务的处理方法,包括:在监测到系统中目标业务场景下目标任务出现异常时,解析所述目标任务在所述目标业务场景下进行重处理所对应的任务参数,得到任务重处理信息;
根据所述任务重处理信息,确定是否触发对所述目标任务进行重处理;
若确定对所述目标任务进行重处理,则为所述目标任务的重处理任务计算预计等待时长;
根据所述预计等待时长为所述重处理任务分配线程;
将所述重处理任务加载至所分配的所述线程,以执行所述重处理任务。
在一实施例中,所述在监测到系统中目标业务场景下目标任务出现异常时,解析所述目标任务在所述目标业务场景下所对应重处理任务的任务参数,得到任务重处理信息,包括:
在监测到系统中目标业务场景下目标任务出现异常时,获取所述目标任务在所述目标业务场景下进行重处理的任务参数;
对所述任务参数进行解析,获得所述任务重处理信息。
在一实施例中,所述获取所述目标任务在所述目标业务场景下进行重处理的任务参数之前,所述方法还包括:
对于不同业务场景,配置与所述业务场景相适应的任务参数。
在一实施例中,所述任务重处理信息指示了重处理时间间隔,所述根据所述任务重处理信息,确定是否触发对所述目标任务进行重处理,包括:
根据所述目标任务出现异常的时间和所述重处理时间间隔确定触发时间;
若达到所述触发时间,则为所述目标任务生成任务触发信号,通过所述任务触发信号指示确定对所述目标任务进行重处理。
在一实施例中,所述为所述目标任务的重处理任务计算预计等待时长,包括:
获取当前线程池中待执行任务的任务数量;
根据所述任务数量为所述重处理任务计算得到所述预计等待时长。
在一实施例中,所述根据所述预计等待时长为所述重处理任务分配线程,包括:
判断所述预计等待时长是否小于第一预设时长;
若所述预计等待时长小于第一预设时长,则将所述重处理任务分配至线程池中的一空闲线程,或将所述重处理任务分配至任务队列未满的非空闲线程;
若所述预计等待时长不小于所述第一预设时长,则在所述线程池中新建线程,并将所述重处理任务分配至所新建的线程。
在一实施例中,所述方法还包括:
对线程池的使用情况进行监控,以确定线程池中的空闲线程;
若所述线程池中的空闲线程数量超过第一阈值,则对空闲线程进行销毁,直至销毁后所述当前线程池中的空闲线程数量不超过所述第一阈值。
根据本申请实施例的一个方面,提供了一种异常任务的处理装置,包括:
解析模块,用于在监测到系统中目标业务场景下目标任务出现异常时,解析所述目标任务在所述目标业务场景下进行重处理所对应的任务参数,得到任务重处理信息;
触发判断模块,用于根据所述任务重处理信息,确定是否触发对所述目标任务进行重处理;
计算模块,用于若确定对所述目标任务进行重处理,则为所述目标任务的重处理任务计算预计等待时长;
分配模块,用于根据所述预计等待时长为所述重处理任务分配线程;
加载模块,用于将所述重处理任务加载至所分配的所述线程,以执行所述重处理任务。
根据本申请实施例的一个方面,提供了一种电子设备,包括:
处理器;及
存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现如上任一项所述的方法。
根据本申请实施例的一个方面,提供了一种计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,实现如上中任一项所述的方法。
在本申请的一些实施例所提供的技术方案中,在获取到目标任务在目标场景下进行重处理所对应的任务参数后,先根据重处理任务信息确定是否触发对目标任务的重处理,相当于实现了对重处理任务的调度,再根据预计等待时长为目标任务分配线程,相当于根据预计等待时长为目标任务实现了资源分配,实现了将重处理过程中的任务调度与资源分配的分离,可以有效避免因执行的问题影响调度,保证了重处理的处理效果,提高了异常任务处理的处理效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是根据一实施例示出的本公开实施环境的示意图;
图2是根据一实施例示出的异常任务的处理方法的流程图;
图3是图2对应实施例的步骤210在一实施例中的流程图;
图4是图2对应实施例的步骤230在一实施例中的流程图;
图5是图2对应实施例的步骤250在一实施例中的流程图;
图6是图2对应实施例的步骤270在一实施例中的流程图;
图7是根据另一实施例示出的异常处理的处理方法的流程图;
图8是根据一实施例示出的异常任务的处理装置的框图;
图9示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
图1是根据一实施例示出的本公开实施环境的示意图,如图1所示,该实施环境包括终端110和服务端120,其中服务端120可以包括一个或者多个服务器,服务端120用于为终端110提供服务。在服务端120为终端110提供服务的过程中或者服务端110的日常运行中,涉及到多种任务的处理。在任务的处理过程中,任务可能出现异常,例如任务被异常中断或者无响应,服务端120可以按照本公开的方法对出现异常的任务进行处理。
值得一提的是,本公开的方法不限于在服务端120中执行,还可以在其他具备运算处理能力的终端中执行,在此不进行具体限定。
以下对本申请实施例的技术方案的实现细节进行详细阐述:
图2是根据一实施例示出的异常任务的处理方法的流程图,该异常任务的处理方法可以由具有计算处理功能的设备来执行,例如图1中的服务端。参照图2所示,该异常任务的处理方法至少包括步骤210至步骤290,详细介绍如下:
步骤210,在监测到系统中目标业务场景下目标任务出现异常时,解析所述目标任务在目标业务场景下进行重处理所对应的任务参数,得到任务重处理信息。
目标任务并不特指某一任务,而是泛指出现异常而需要重处理的任务。系统运行过程中的任一任务均可以作为本公开的目标任务,例如实现身份证验证的任务、实现人脸识别的任务。
同样的,本公开中的目标业务场景并不特指某一业务场景,而是泛指任务出现异常时的业务场景,系统中的任一业务场景均可以作为本公开中的目标业务场景。
任务参数用于限定在目标业务场景下对目标任务进行重处理的过程,例如限定重处理的触发时间、重处理的次数等,在此不进行具体限定。
在本公开中,系统中包括多种业务场景。对于同一任务,不同的业务场景可能对异常任务的重处理要求存在差异,例如响应时间不同。在本公开的方案中,针对每一业务场景对应设有任务参数,从而,在业务场景不同时,仅需要变换任务参数即可实现。
每一业务场景所对应的任务参数可以是预先设定的,也可以由用户进行配置,在此不进行具体限定。
任务参数可以包括重处理的最大次数、最长重处理时间、重处理时间间隔、是否重复执行等中的至少一个,在此不进行具体限定。
在系统中,业务场景可以通过场景标识来进行唯一标识。业务场景所对应的任务参数与业务场景的场景标识相关联的,从而,根据业务场景的场景标识即可对应获取到业务场景所对应的人物参数。
重处理的最大次数,用于限定对任务进行重处理的最大次数,若超过该最大次数,该任务仍未成功,则跳过该任务。
最长重处理时间,用于在不指定重处理的最大次数的情况下,限定执行重处理的最长时间,例如在一小时内执行重处理,若在达到一个小时该任务重处理仍未成功,则跳过该任务。
重处理时间间隔,用于限定相邻两次重处理之间的时间间隔。
是否重复执行,用于限定同一条异常数据的补处理是否可以重复调用。
以上仅仅是对任务参数的示例性举例,在其他实施例中,还可以包括出上述举例中的其他参数,在此不进行具体限定。
对于任一任务的重处理,可能由于编程语言的不同,对目标任务进行重处理的处理器可能并不能识别所获取的任务参数,因此,在获取到任务参数之后,对任务参数进行解析得到任务重处理信息,从而可以使得进行重处理的处理器可直接识别。也就是说,任务重处理信息是对任务参数的另一种表达方式。
步骤230,根据所述任务重处理信息,确定是否触发对所述目标任务进行重处理。
如上所描述,任务重处理信息是对任务参数的另一种表达方式,则该任务重处理信息也是用于限定对目标任务进行重处理的过程。因此,根据任务重处理信息即可确定是否触发对目标任务进行重处理,例如,任务重处理信息限定了对目标任务进行重处理的触发时间,若当前时间达到该所限定的触发时间,则确定触发对目标任务进行重处理;反之,若当前时间未达到该限定的触发时间,则继续等待,直至达到所限定的触发时间。
步骤250,若确定对所述目标任务进行重处理,则为所述目标任务的重处理任务计算预计等待时长。
目标任务的重处理任务是指在重处理过程中为目标任务所启动的任务,换言之,目标任务的重处理即是执行目标任务的重处理任务。
值得一提的是,对于重处理过程,可能需要连续进行多次重处理,也就是说,该重处理任务的执行次数可能超过一次,具体执行次数需要由实际的执行情况决定。
在系统中,虽然通过多个线程来实现同时执行多个任务,但是,仍然可能存在任务等待的执行,即将任务放入线程的工作队列中等待执行。因此,需要根据任务的等待情况来为该目标任务的重处理计算预计等待时长。
该预计等待时长可以通过系统中待执行任务的信息来计算,待执行任务的信息中包括该任务的预计执行所需时间,从而,将系统中待执行任务的预计执行所需时间进行叠加,对应得到该预计等待时长。
在另一实施例中,对于系统中任务的执行,可能存在执行间隔时间,从而,需要根据每一任务的预计执行所需时间和相邻任务件的执行间隔时间来极端得到该预计等待时长。
在另一实施例中,系统中可能并未保存待执行任务的预计执行所需时间,则可以根据已执行任务的执行所花费时间来预估待执行任务的预计执行所需时间。例如根据待执行任务的任务类型,获取与该待执行任务相同任务类型的已执行任务的执行所花费时间来预估该待执行任务的预计执行所需时间。
步骤270,根据所述预计等待时长为所述重处理任务分配线程。
该预计等待时长直观反映出了系统中的线程和队列的使用情况,如果该预计等待时长较小甚至为零,则说明线程的压力较小;反之,若该预计等待时长较长,则说明待执行的任务较多,线程的压力较大。
因此,根据预计等待时长来为重处理任务分配线程,相当于是根据当前系统中线程的使用情况来进行线程的分配。
在一实施例中,为了保证重处理任务的处理速度,在根据预计等待时长确定系统中存在空闲线程时,则将该重处理任务分配至该空闲线程,从而,通过该空闲线程可以立即执行该重处理任务。
在系统中不存在空闲线程时,则根据该预计等待时长确定是否为该重处理任务新建线程。具体而言,计算新建线程花费的时间与该预计等待时长的大小,若新建线程所花费的时间远小于该预计等待时长,则为新建线程,并将新建的线程分配给该重处理任务;反之,若新建线程所花费的时间远大于该预计等待时长,则进行等待,直至系统中存在空闲线程。
在一实施例中,系统中构建了线程池,通过线程池中的线程来执行系统中的任务。
步骤290,将所述重处理任务加载至所分配的所述线程,以执行所述重处理任务。
在为重处理任务分配了线程后,对应由该所分配的线程加载重处理任务,以执行该重处理任务。
至此,在获取到目标任务在目标场景下进行重处理所对应的任务参数后,先根据重处理任务信息确定是否触发对目标任务的重处理,相当于实现了对重处理任务的调度,再根据预计等待时长为目标任务分配线程,相当于根据预计等待时长为目标任务实现了资源分配,实现了将重处理过程中的任务调度与资源分配的分离,可以有效避免因执行的问题影响调度,保证了重处理的处理效果,提高了异常处理的处理效率。
而且,通过在任务参数来区分目标任务在不同任务场景下的要求,可以通过一套通用的代码来进行对目标任务进行描述,而通过对任务参数进行定义,从而,该通过代码可以适用于不同任务场景,实现了代码的公用性,而不需要为同一任务在不同任务场景下分别进行重处理任务对应代码的编写,提高了代码复用率,降低了工程师的编程工作量。
在一实施例中,如图3所示,步骤210包括:
步骤310,在监测到系统中目标业务场景下目标任务出现异常时,获取所述目标任务在所述目标业务场景下进行重处理的任务参数。
如上所描述,同一任务在不同业务场景下的任务参数存在差异,从而,在监测到目标任务出现异常时,根据目标任务所在目标业务场景的场景标识来对应获取在该目标业务场景下进行重处理的任务参数。
步骤330,对所述任务参数进行解析,获得所述任务重处理信息。
所进行的解析,是按照预设的要求进行解析,即解析获得的任务重处理信息可以直接应用于步骤230中“是否确定对目标任务进行重处理”。
在一实施例中,为进行解析,预先设定任务重处理信息的格式和任务参数的格式,从而,根据任务参数与任务处理信息之间的格式对应关系来对任务参数进行解析,获得对应格式的任务处理信息。
在一实施例中,步骤310之前,该方法还包括:
对于不同业务场景,配置与所述业务场景相适应的任务参数。
在本实施例中,用户可以根据实际需要对不同业务场景下的任务参数进行配置。
在一实施例中,为了实现任务参数的配置,系统向用户提供一交互界面,从而,用户在该交互界面中对不同业务场景下的任务参数进行配置,由服务端将用户在交互界面上锁配置的任务参数与业务场景进行关联存储。
在一实施例中,任务重处理信息指示了重处理时间间隔,如图4所示,步骤230包括:
步骤410,根据所述目标任务出现异常的时间和所述重处理时间间隔确定触发时间。
该重处理时间间隔是指从目标业务出现异常到触发对该目标任务进行重处理的时间间隔。
目标任务出现异常的时间与重处理时间间隔相加即得到触发时间。
步骤430,若达到所述触发时间,则为所述目标任务生成任务触发信号,通过所述任务触发信号指示确定对所述目标任务进行重处理。
实时获取当前的时间,如果当前的时间达到所确定的触发时间,则为该目标任务生成任务触发信号。
在一实施例中,系统中包括调度中心和分配中心,该调度中心用于对任务进行调度,即确定哪些任务需要执行。该配置中心用于对所调度需要执行的人物分配线程。
在该实施例中,步骤410-430由调度中心来执行,从而,在生成任务触发信号后,将该任务触发信号发送至分配中心,由该分配中西对应为该目标任务的重处理任务分配线程。
在一实施例中,如图5所示,步骤250包括:
步骤510,获取当前线程池中待执行任务的任务数量。
当前线程池中包括多个线程,每个线程中可能存在待执行任务,具体而言,待执行任务存储于线程的工作队列中,从而,根据各个线程的工作队列中任务的数量即可对应计算得到待执行任务的任务数量。
步骤530,根据所述任务数量为所述重处理任务计算得到所述预计等待时长。
在一实施例中,为了计算得到预计等待时长,根据已执行任务的执行所花费时间来计算平均执行时间,从而,将任务数量与平均执行时间的乘积作为预计等待时长。
在另一实施例中,由于每一类任务的执行所需时间可能存在差异,根据线程的工作队列中任务所述类型,统计得到每一类型任务的任务数量,然后,根据每一类型已执行任务的执行所花费时间计算得到在每一类型任务对应的平均执行时间。在此基础上,对当前线程池中每一类型任务的任务数量和平均执行时间进行加权,得到该预计等待时长。
在一实施例中,如图6所示,步骤270包括:
步骤610,判断所述预计等待时长是否小于第一预设时长。
步骤630,若所述预计等待时长小于第一预设时长,则将所述重处理任务分配至线程池中的一空闲线程,或将所述重处理任务分配至任务队列未满的非空闲线程。
空闲线程是指没有任务执行的线程。非空闲线程是指当前有任务在执行的线程。
如果预计等待时长小于第一预设时长,则说明线程池中可能存在空闲线程,或者线程池中并不存在空闲线程,但是非空闲线程的工作队列并没有排满。
具体而言,若预计等待时长等于0,则说明线程池中存在空闲线程;若预计等待时长大于零且小于第一预设时长,则说明线程池中并不存在空闲线程,但是非空闲线程的工作队列并没有排满。
在这两种情况下,可以直接将该重处理任务分配至线程池中的线程,由线程池中的任务来执行该重处理任务。
具体来说,若将该重处理任务分配至线程池中的空闲线程,则该空闲线程立即可以执行该重处理任务。若将该重处理任务分配至任务队列未满的非空闲线程,需要在任务队列中等待被执行。
步骤650,若所述预计等待时长不小于所述第一预设时长,则在所述线程池中新建线程,并将所述重处理任务分配至所新建的线程。
如果预计等待时长不小于第一预设时长,则说明该线程池中的负荷较大,则为了保证重处理任务的及时执行,在线程池中新建线程,从而,通过新建的线程来执行该重处理任务。
在一实施例中,如图7所示,该方法还包括:
步骤710,对线程池的使用情况进行监控,以确定线程池中的空闲线程。
通过监控,来确定线程池中各个线程的使用情况,进而确定线程池中是否存在空闲线程。
步骤730,若所述线程池中的空闲线程数量超过第一阈值,则对空闲线程进行销毁,直至销毁后所述当前线程池中的空闲线程数量不超过所述第一阈值。
如果该空闲线程超过第一阈值,则说明空闲线程较多,则为了保证线程的利用率,避免持续占用内存,对空闲线程进行销毁。同时,为了拨正后续有足够的空闲线程来进行加载任务,实现任务的执行,在销毁线程的过程中,始终保证当前线程池中空闲线程的数量不超过第一阈值。
在具体实施例中,该第一阈值可以根据实际情况和线程池中线程的总数来进行设定,在此不进行具体限定。
以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的方法。对于本申请装置实施例中未披露的细节,请参照本申请上述的方法实施例。
图8是根据一实施例示出的异常任务的处理装置的框图,如图8所示,该装置括:
解析模块810,用于在监测到系统中目标业务场景下目标任务出现异常时,解析所述目标任务在目标业务场景下进行重处理所对应的任务参数,得到任务重处理信息。
触发判断模块830,用于根据所述任务重处理信息,确定是否触发对所述目标任务进行重处理。
计算模块850,用于若确定对所述目标任务进行重处理,则为所述目标任务的重处理任务计算预计等待时长;
分配模块870,用于根据所述预计等待时长为所述重处理任务分配线程。
加载模块890,用于将所述重处理任务加载至所分配的所述线程,以执行所述重处理任务。
上述装置中各个模块的功能和作用的实现过程具体详见上述异常任务的处理方法中对应步骤的实现过程,在此不再赘述。
可以理解,这些模块可以通过硬件、软件、或二者结合来实现。当以硬件方式实现时,这些模块可以实施为一个或多个硬件模块,例如一个或多个专用集成电路。当以软件方式实现时,这些模块可以实施为在一个或多个处理器上执行的一个或多个计算机程序。
在一实施例中,解析模块810包括:
任务参数获取单元,用于在监测到系统中目标业务场景下目标任务出现异常时,获取所述目标任务在所述目标业务场景下进行重处理的任务参数。
解析单元,用于对所述任务参数进行解析,获得所述任务重处理信息。
在一实施例中,该装置还包括:
配置模块,用于对于不同业务场景,配置与所述业务场景相适应的任务参数。
在一实施例中,所述任务重处理信息指示了重处理时间间隔,触发判断模块830,包括:
触发时间确定单元,用于根据所述目标任务出现异常的时间和所述重处理时间间隔确定触发时间。
信号生成单元,用于若达到所述触发时间,则为所述目标任务生成任务触发信号,通过所述任务触发信号指示确定对所述目标任务进行重处理。
在一实施例中,计算模块850包括:
任务数量获取单元,用于获取当前线程池中待执行任务的任务数量。
计算单元,用于根据所述任务数量为所述重处理任务计算得到所述预计等待时长。
在一实施例中,分配模块870,包括:
判断单元,用于判断所述预计等待时长是否小于第一预设时长。
第一分配单元,用于若所述预计等待时长小于第一预设时长,则将所述重处理任务分配至线程池中的一空闲线程,或将所述重处理任务分配至任务队列未满的非空闲线程。
第二分配单元,用于若所述预计等待时长不小于所述第一预设时长,则在所述线程池中新建线程,并将所述重处理任务分配至所新建的线程。
在一实施例中,该装置包括:
监控模块,用于对线程池的使用情况进行监控,以确定线程池中的空闲线程。
销毁模块,用于若所述线程池中的空闲线程数量超过第一阈值,则对空闲线程进行销毁,直至销毁后所述当前线程池中的空闲线程数量不超过所述第一阈值。
上述装置中各个模块/单元的功能和作用的实现过程具体详见上述异常任务的处理方法中对应步骤的实现过程,在此不再赘述。
图9示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图9示出的电子设备的计算机系统900仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图9所示,计算机系统900包括中央处理单元(Central Processing Unit,CPU)901,其可以根据存储在只读存储器(Read-Only Memory,ROM)902中的程序或者从存储部分908加载到随机访问存储器(Random Access Memory,RAM)903中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在RAM 903中,还存储有系统操作所需的各种程序和数据。CPU 901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(Input/Output,I/O)接口905也连接至总线904。
以下部件连接至I/O接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN(Local Area Network,局域网)卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被中央处理单元(CPU)901执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
值得一提的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (9)
1.一种异常任务的处理方法,其特征在于,包括:
在监测到系统中目标业务场景下目标任务出现异常时,解析所述目标任务在所述目标业务场景下进行重处理所对应的任务参数,得到任务重处理信息;
根据所述任务重处理信息,确定是否触发对所述目标任务进行重处理;
若确定对所述目标任务进行重处理,则根据已执行任务的执行所花费时间预估待执行任务的预计执行所需时间,根据所述待执行任务的预计执行所需时间为所述目标任务的重处理任务计算预计等待时长;
判断所述预计等待时长是否小于第一预设时长;
若所述预计等待时长小于第一预设时长,则将所述重处理任务分配至线程池中的一空闲线程,或将所述重处理任务分配至任务队列未满的非空闲线程;
若所述预计等待时长不小于所述第一预设时长,则在所述线程池中新建线程,并将所述重处理任务分配至所新建的线程;
将所述重处理任务加载至所分配的所述线程,以执行所述重处理任务。
2.根据权利要求1所述的方法,其特征在于,所述在监测到系统中目标业务场景下目标任务出现异常时,解析所述目标任务在所述目标业务场景下所对应重处理任务的任务参数,得到任务重处理信息,包括:
在监测到系统中目标业务场景下目标任务出现异常时,获取所述目标任务在所述目标业务场景下进行重处理的任务参数;
对所述任务参数进行解析,获得所述任务重处理信息。
3.根据权利要求2所述的方法,其特征在于,所述获取所述目标任务在所述目标业务场景下进行重处理的任务参数之前,所述方法还包括:
对于不同业务场景,配置与所述业务场景相适应的任务参数。
4.根据权利要求1所述的方法,其特征在于,所述任务重处理信息指示了重处理时间间隔,所述根据所述任务重处理信息,确定是否触发对所述目标任务进行重处理,包括:
根据所述目标任务出现异常的时间和所述重处理时间间隔确定触发时间;
若达到所述触发时间,则为所述目标任务生成任务触发信号,通过所述任务触发信号指示确定对所述目标任务进行重处理。
5.根据权利要求1所述的方法,其特征在于,根据所述待执行任务的预计执行所需时间所述为所述目标任务的重处理任务计算预计等待时长,包括:
获取当前线程池中待执行任务的任务数量;
根据所述待执行任务的预计执行所需时间和所述任务数量为所述重处理任务计算得到所述预计等待时长。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对线程池的使用情况进行监控,以确定线程池中的空闲线程;
若所述线程池中的空闲线程数量超过第一阈值,则对空闲线程进行销毁,直至销毁后当前线程池中的空闲线程数量不超过所述第一阈值。
7.一种异常任务的处理装置,其特征在于,包括:
解析模块,用于在监测到系统中目标业务场景下目标任务出现异常时,解析所述目标任务在所述目标业务场景下进行重处理所对应的任务参数,得到任务重处理信息;
触发判断模块,用于根据所述任务重处理信息,确定是否触发对所述目标任务进行重处理;
计算模块,用于若确定对所述目标任务进行重处理,则根据已执行任务的执行所花费时间预估待执行任务的预计执行所需时间,根据所述待执行任务的预计执行所需时间为所述目标任务的重处理任务计算预计等待时长;
分配模块,用于判断所述预计等待时长是否小于第一预设时长;若所述预计等待时长小于第一预设时长,则将所述重处理任务分配至线程池中的一空闲线程,或将所述重处理任务分配至任务队列未满的非空闲线程;若所述预计等待时长不小于所述第一预设时长,则在所述线程池中新建线程,并将所述重处理任务分配至所新建的线程;
加载模块,用于将所述重处理任务加载至所分配的所述线程,以执行所述重处理任务。
8.一种电子设备,其特征在于,包括:
处理器;及
存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现如权利要求1至6中任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,实现如权利要求1至6中的任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010226976.6A CN111459754B (zh) | 2020-03-26 | 2020-03-26 | 异常任务的处理方法、装置、介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010226976.6A CN111459754B (zh) | 2020-03-26 | 2020-03-26 | 异常任务的处理方法、装置、介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111459754A CN111459754A (zh) | 2020-07-28 |
CN111459754B true CN111459754B (zh) | 2022-09-27 |
Family
ID=71678331
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010226976.6A Active CN111459754B (zh) | 2020-03-26 | 2020-03-26 | 异常任务的处理方法、装置、介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111459754B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778656B (zh) * | 2020-09-16 | 2024-10-18 | 北京沃东天骏信息技术有限公司 | 线程池的线程配置方法、装置、服务器和存储介质 |
CN112148493A (zh) * | 2020-09-30 | 2020-12-29 | 武汉中科通达高新技术股份有限公司 | 一种流媒体任务管理方法及装置、数据服务器 |
CN112379984B (zh) * | 2020-11-16 | 2024-07-23 | 神州融安科技(北京)有限公司 | 执行任务的方法、设备、电子设备及计算机可读存储介质 |
CN112598816B (zh) * | 2020-11-19 | 2022-10-04 | 广州瑞修得信息科技有限公司 | 一种车辆数据采集方法、装置及车辆诊断系统 |
CN113282390A (zh) * | 2021-05-20 | 2021-08-20 | 北京达佳互联信息技术有限公司 | 任务调度方法、装置、电子设备及可读存储介质 |
CN117522349B (zh) * | 2024-01-04 | 2024-03-29 | 山东保医通信息科技有限公司 | 一种多源数据业务的自动化处理方法、设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107179896A (zh) * | 2016-03-09 | 2017-09-19 | 阿里巴巴集团控股有限公司 | 任务处理方法和装置 |
CN107832146A (zh) * | 2017-10-27 | 2018-03-23 | 北京计算机技术及应用研究所 | 高可用集群系统中的线程池任务处理方法 |
CN107957903A (zh) * | 2017-11-13 | 2018-04-24 | 中国平安财产保险股份有限公司 | 异步任务调度方法、服务器及存储介质 |
CN107967189A (zh) * | 2016-10-20 | 2018-04-27 | 南京途牛科技有限公司 | 异常任务重试方法及装置 |
CN109002353A (zh) * | 2018-08-16 | 2018-12-14 | 北京中科梧桐网络科技有限公司 | 一种java统一任务中心调度方法 |
CN109725998A (zh) * | 2018-12-26 | 2019-05-07 | 亚信科技(中国)有限公司 | 一种任务重试方法及装置 |
-
2020
- 2020-03-26 CN CN202010226976.6A patent/CN111459754B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107179896A (zh) * | 2016-03-09 | 2017-09-19 | 阿里巴巴集团控股有限公司 | 任务处理方法和装置 |
CN107967189A (zh) * | 2016-10-20 | 2018-04-27 | 南京途牛科技有限公司 | 异常任务重试方法及装置 |
CN107832146A (zh) * | 2017-10-27 | 2018-03-23 | 北京计算机技术及应用研究所 | 高可用集群系统中的线程池任务处理方法 |
CN107957903A (zh) * | 2017-11-13 | 2018-04-24 | 中国平安财产保险股份有限公司 | 异步任务调度方法、服务器及存储介质 |
CN109002353A (zh) * | 2018-08-16 | 2018-12-14 | 北京中科梧桐网络科技有限公司 | 一种java统一任务中心调度方法 |
CN109725998A (zh) * | 2018-12-26 | 2019-05-07 | 亚信科技(中国)有限公司 | 一种任务重试方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111459754A (zh) | 2020-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111459754B (zh) | 异常任务的处理方法、装置、介质及电子设备 | |
WO2020052301A1 (zh) | 一种资源调度方法及装置 | |
CN110427252B (zh) | 基于任务依赖关系的任务调度方法、装置及存储介质 | |
CN109656782A (zh) | 可视化调度监控方法、装置及服务器 | |
CN111338791A (zh) | 集群队列资源的调度方法、装置、设备及存储介质 | |
CN106557369A (zh) | 一种多线程的管理方法及系统 | |
CN109710624B (zh) | 数据处理方法、装置、介质及电子设备 | |
CN111767199B (zh) | 一种基于批处理作业的资源管理方法、装置、设备及系统 | |
CN112579304A (zh) | 基于分布式平台的资源调度方法、装置、设备及介质 | |
CN105022668B (zh) | 一种作业调度方法及系统 | |
CN110109741B (zh) | 循环任务的管理方法、装置、电子设备及存储介质 | |
CN114327894A (zh) | 资源分配方法、装置、电子设备及存储介质 | |
CN114461355A (zh) | 异构计算集群统一管理方法、装置、电子设备及存储介质 | |
CN109840597B (zh) | 一种模型预测方法、装置、电子设备及存储介质 | |
US20160077948A1 (en) | Method and system for monitoring health of a virtual environment | |
CN111277626A (zh) | 服务器升级方法、装置、电子设备及介质 | |
CN117707737A (zh) | 一种任务调度优化方法、装置、设备及其存储介质 | |
CN116962532A (zh) | 集群任务调度方法、装置、计算机设备及存储介质 | |
CN115981962B (zh) | 线程池监控方法、装置、电子设备及存储介质 | |
CN112749062A (zh) | 服务端程序监控方法、装置、计算机设备及存储介质 | |
CN114661475A (zh) | 一种用于机器学习的分布式资源调度方法及装置 | |
CN114168294A (zh) | 编译资源分配方法、装置、电子设备及存储介质 | |
CN104572036B (zh) | 事件的处理方法及装置 | |
CN113485810A (zh) | 一种任务的调度执行方法、装置、设备及存储介质 | |
CN112559183A (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 |