CN109783210B - 多任务处理方法、装置、计算机设备及存储介质 - Google Patents
多任务处理方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN109783210B CN109783210B CN201811521976.8A CN201811521976A CN109783210B CN 109783210 B CN109783210 B CN 109783210B CN 201811521976 A CN201811521976 A CN 201811521976A CN 109783210 B CN109783210 B CN 109783210B
- Authority
- CN
- China
- Prior art keywords
- task
- execution
- time
- processing program
- executed
- 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
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请涉及过程优化领域,尤其涉及一种多任务处理方法、装置、计算机设备及存储介质,包括:启动多个任务,调用一级任务处理程序执行多个任务,并获取每个任务的执行起始时刻;在任务正常执行完成后,获取任务的执行完成时刻,根据任务的执行起始时刻和执行完成时刻得到执行周期;在任务执行异常并中断时,将执行异常的任务传送至二级任务处理程序中执行;实时监控任务在二级任务处理程序中的执行结果,并获取任务在二级任务处理程序中执行的次数,根据任务的执行结果和任务执行的次数判断是否终止任务。本申请通过两级任务处理机制的方式来处理异常任务,不会影响后续任务的执行,保证了多任务处理系统的健壮性,提高了工作效率。
Description
技术领域
本申请涉及过程优化领域,特别是涉及一种多任务处理方法、装置、计算机设备及存储介质。
背景技术
任务指的是要计算机做的一件事,计算机执行一个任务通常就对应着运行一个应用程序,而对于任务的处理可分为单任务处理和多任务处理,所述单任务处理是指前一个任务完成后才能启动后一个任务的运行,任务是顺序执行的。所述多任务处理是指系统可同时运行多个进程,而每个进程也可同时执行多个线程,一个线程是指程序的一条执行路径,它在系统指定的时间片中完成特定的功能。运用多任务处理技术可以提高用户的工作效率和计算机的使用效率。
在对任务进行处理时不可避免地会遇到异常,需要使用异常处理技术,异常处理是一种用来检测异常并对其进行处理的技术,正确地处理异常对维持程序的可靠性、健壮性具有十分重要的意义。当多任务处理系统在遇到异常执行时,目前一般会采用重试机制对异常处进行修复,重试若干次后仍不成功的话,才会启动报警装置,开始人工干预,这样会中断后续任务的执行,降低工作效率,因此重试机制不适用于频繁处理流程或者对时间连贯性要求较高的流程中。
发明内容
基于此,有必要针对目前采用重试机制处理多任务异常问题时,会中断后续任务的执行,降低工作效率等问题,提供以中共多任务处理方法、装置、计算机设备及存储介质。
一种多任务处理方法,所述多任务处理方法包括如下步骤:
启动多个任务,调用一级任务处理程序执行多个所述任务,并获取每个所述任务的执行起始时刻;
在所述任务正常执行完成后,获取所述任务的执行完成时刻,根据所述任务的执行起始时刻和执行完成时刻计算得到正常执行周期;
在所述任务执行异常并中断时,将执行异常的所述任务传送至二级任务处理程序中执行;
实时监控所述任务在所述二级任务处理程序中的执行结果,并获取所述任务在所述二级任务处理程序中执行的次数,根据所述任务的执行结果和所述任务执行的次数判断是否终止所述任务。
在一个可能的实施例中,所述启动多个任务,调用一级任务处理程序执行多个所述任务,并获取每个所述任务的执行起始时刻,包括:
获取多个任务,将多个所述任务对应的执行代码依次发送至所述一级任务执行程序中的线程池;
根据所述执行代码在所述线程池中的顺序依次申请对应的线程,启动所述线程开始执行所述执行代码,并获取开始执行所述任务的所述执行代码的起始时刻作为所述任务的执行起始时刻。
在一个可能的实施例中,所述在所述任务正常执行完成后,获取所述任务的执行完成时刻,根据所述任务的执行起始时刻和执行完成时刻计算得到正常执行周期,包括:
对所述一级任务处理程序中所述任务对应的执行代码的执行情况进行监控,当所述执行代码执行无异常时,判断所述任务为正常执行,当所述执行代码执行异常时,判断所述任务为异常执行;
获取正常执行的所述任务的时刻,将所述任务及对应的时间周期上传至所述数据库中,所述时间周期包括开始执行所述任务的时刻到完成执行所述任务的时刻之间的时间段。
在一个可能的实施例中,所述在所述任务执行异常并中断时,将执行异常的所述任务传送至二级任务处理程序中执行,包括:
获取异常执行的所述任务对应的执行代码,调用所述二级任务处理程序执行所述执行代码,并实时记录所述执行代码的执行时间;
实时监控所述执行代码的执行情况,并根据所述执行代码的执行情况对所述任务进行异常判断,当所述任务正常执行时,停止执行所述任务的所述执行代码;当所述任务异常执行时,继续调用所述二级任务处理程序执行所述任务的所述执行代码,并实时记录执行所述任务的次数。
在一个可能的实施例中,所述实时监控所述任务在所述二级任务处理程序中的执行结果,并获取所述任务在所述二级任务处理程序中执行的次数,根据所述任务的执行结果和所述任务执行的次数判断是否终止所述任务,包括:
实时监控所述任务在所述二级任务处理程序中的执行结果,并从所述二级任务处理程序中获取执行所述任务的次数及对应的执行时间;
将所述次数与预设阈值进行比较,当所述次数低于所述阈值,且所述任务的执行结果为正常执行时,停止执行所述任务并将所述任务及对应的所述执行时间上传至数据库中;
当所述次数高于所述阈值时,且所述任务的执行结果一直为异常执行时,则停止执行所述任务,并向技术人员发送报警信息。
在一个可能的实施例中,所述获取异常执行的所述任务对应的执行代码,调用所述二级任务处理程序执行所述执行代码,并实时记录所述执行代码的执行时间,包括:
调用设置在所述二级任务处理程序中的时间记录器实时记录所述任务每次执行的时间,所述时间记录器中包含多个时间存储节点,其中所述时间存储节点与所述任务一一对应;
当停止执行所述任务时,将对应的所述时间存储节点所记录的所述任务每次执行的时间进行求和后得到所述任务的所述执行时间。
在一个可能的实施例中,所述当停止执行所述任务时,将对应的所述时间存储节点所记录的所述任务每次执行的时间进行求和后得到所述任务的所述执行时间,包括:
获取所述任务对应的所述时间存储节点记录的每次执行的时间,将所述每次执行的时间进行求和后得到所述执行时间,计算公式如公式(1)所示,
ti=ti1+ti2+...+tin (1),
公式(1)中,ti表示任务i的所述执行时间,ti1表示任务i第1次执行的时间,ti2表示任务i第2次执行的时间,tin表示任务i第n次执行的时间,n表示非零自然数。
基于相同的构思,本申请还提供一种多任务处理装置,所述多任务处理装置包括:
一级执行模块,设置为启动多个任务,调用一级任务处理程序执行多个所述任务,并获取每个所述任务的执行起始时刻;
传送模块,设置为在所述任务正常执行完成后,获取所述任务的执行完成时刻,根据所述任务的执行起始时刻和执行完成时刻计算得到正常执行周期;
二级执行模块,设置为在所述任务执行异常并中断时,将执行异常的所述任务传送至二级任务处理程序中执行;
发送警报模块,设置为实时监控所述任务在所述二级任务处理程序中的执行结果,并获取所述任务在所述二级任务处理程序中执行的次数,根据所述任务的执行结果和所述任务执行的次数判断是否终止所述任务。
基于相同的技术构思,本申请实施例还提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被一个或多个所述处理器执行时,使得一个或多个所述处理器执行上述多任务处理方法的步骤。
基于相同的技术构思,本申请实施例还提供了一种存储介质,所述存储介质可被处理器读写,所述存储介质存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个所述处理器执行如上述多任务处理方法的步骤。
上述多任务处理方法、装置、计算机设备及存储介质,通过启动多个任务,调用一级任务处理程序执行多个所述任务,并获取每个所述任务的执行起始时刻;在所述任务正常执行完成后,获取所述任务的执行完成时刻,根据所述任务的执行起始时刻和执行完成时刻计算得到正常执行周期;在所述任务执行异常并中断时,将执行异常的所述任务传送至二级任务处理程序中执行;实时监控所述任务在所述二级任务处理程序中的执行结果,并获取所述任务在所述二级任务处理程序中执行的次数,根据所述任务的执行结果和所述任务执行的次数判断是否终止所述任务。因此,通过采用两级任务处理机制及任务时间点记录的方式来处理异常任务,不会影响后续任务的执行,保证了多任务处理系统的健壮性,提高了工作效率。
附图说明
图1为本申请在一个实施例中的多任务处理方法的流程图;
图2为本申请在一个实施例中的多任务处理方法中的重复执行任务的流程图;
图3为本申请在一个实施例中的多任务处理方法中的终止执行任务的流程图;
图4为本申请在一个实施例中的多任务处理装置的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为本申请在一个实施例中提供的多任务处理方法的流程图,如图1所示,包括:
S1、启动多个任务,调用一级任务处理程序执行多个所述任务,并获取每个所述任务的执行起始时刻;
本步骤中从现有任务平台中获取多个任务,将多个所述任务对应的执行代码依次发送至一级任务执行程序中的线程池中,并根据所述执行代码在所述线程池中的顺序依次申请对应的线程,启动所述线程开始执行所述执行代码,并获取开始执行所述任务的所述执行代码的起始时刻作为所述任务的执行起始时刻。
S2、在所述任务正常执行完成后,获取所述任务的执行完成时刻,根据所述任务的执行起始时刻和执行完成时刻计算得到正常执行周期;
本步骤中对所述一级任务执行程序中所述任务的所述执行代码的执行情况进行监控,当所述执行代码的执行无异常时,判断所述任务为正常执行,当所述执行代码的执行异常时,判断所述任务为异常执行,获取正常执行的所述任务的执行起始和执行完成的时刻,将所述任务及对应的时间周期上传至数据库中,所述时间周期包括开始执行的时刻与完成执行的时刻之间的时间段。
S3、在所述任务执行异常并中断时,将执行异常的所述任务传送至二级任务处理程序中执行;
本步骤中从所述一级任务执行程序中获取异常执行的所述任务对应的执行代码,调用二级任务执行程序执行所述执行代码,每开始执行一个所述任务时,调用一个对应的时间节点记录所述任务的执行时间,所述执行时间包括多次执行所述任务时所用的多个时间段,同时实时监控所述执行代码的执行情况,当所述任务正常执行时,则停止执行所述任务的所述执行代码,当所述任务异常执行时,继续调用所述二级任务处理程序执行所述任务的所述执行代码,并实时记录执行所述任务的次数。
S4、实时监控所述任务在所述二级任务处理程序中的执行结果,并获取所述任务在所述二级任务处理程序中执行的次数,根据所述任务的执行结果和所述任务执行的次数判断是否终止所述任务;
本步骤中实时监控所述任务在所述二级任务处理程序中的执行结果,并实时获取所述任务在所述二级任务处理程序中执行的次数,将所述次数与预设阈值进行比较,当所述次数低于所述阈值,且所述任务的执行结果为正常执行时,则停止执行所述任务并将所述任务及对应的所述执行时间上传至数据库中,当所述次数高于所述阈值时,且所述任务的执行结果一直为异常执行时,则停止执行所述任务,并发送报警信息至技术人员。
本实施例中通过两级任务处理程序及任务时间点记录的方式来处理异常执行的任务,保证了多任务处理系统的健壮性,提高了工作效率。
在一个实施例中,所述启动多个任务,调用一级任务处理程序执行多个所述任务,并获取每个所述任务的执行起始时刻,包括:
获取多个任务,将多个所述任务对应的执行代码依次发送至所述一级任务执行程序中的线程池;
本步骤中从现有任务平台中获取多个所述任务,并按照获取所述任务的顺序将所述任务的执行代码依次发送至一级任务执行程序的线程池中,比如从现有任务平台依次获取了任务A、任务B、任务C,则根据获取的顺序依次将任务A的执行代码A、任务B的执行代码B、任务C的执行代码C发送至所述一级任务执行程序中。
根据所述执行代码在所述线程池中的顺序依次申请对应的线程,启动所述线程开始执行所述执行代码,并获取开始执行所述任务的所述执行代码的起始时刻作为所述任务的执行起始时刻;
本步骤中根据所述执行代码在所述线程池中顺序依次申请对应的线程,比如根据执行代码A、执行代码B、执行代码C的顺序依次申请线程A、线程B、线程C,并依次启动线程A、线程B、线程C开始执行执行代码A、执行代码B、执行代码C,在启动所述线程执行所述执行代码的同时获取开始执行任务A、任务B、任务C的执行起始时刻。
本实施例中通过顺序执行所述任务的方式,为后续快速判断所述任务是否异常执行提供了基础。
在一个实施例中,所述在所述任务正常执行完成后,获取所述任务的执行完成时刻,根据所述任务的执行起始时刻和执行完成时刻计算得到正常执行周期,包括:
对所述一级任务处理程序中所述任务对应的执行代码的执行情况进行监控,当所述执行代码执行无异常时,判断所述任务为正常执行,当所述执行代码执行异常时,判断所述任务为异常执行;
本步骤中对所述一级任务执行程序中的所述任务的所述执行代码的执行情况进行实时监控,并根据所述执行代码的执行情况判断所述任务的执行情况,比如执行代码A的执行结果正常,则可判断任务A为正常执行,若执行代码B由于网络原因导致执行结果异常,则可判断任务B为异常执行。
获取正常执行的所述任务的时刻,将所述任务及对应的时间周期上传至所述数据库中,所述时间周期包括开始执行所述任务的时刻到完成执行所述任务的时刻之间的时间段;
本步骤中获取正常执行的所述任务的开始执行时刻和完成执行时刻,根据开始执行时刻和完成执行时刻获取所述任务的所述时间周期,并将正常执行的所述任务及所述时间周期上传至所述数据库中,比如任务A的执行结果为正常执行,则通过获取任务A开始执行时刻和任务A完成执行时刻之间的时间点得到任务A的时间周期,将执行完成的任务A及其时间周期上传至数据库中。
本实施例中通过对所述任务的执行结果的实时判断,将执行正常和执行异常的任务进行快速的分流,提高了工作效率。
图2为本申请在一个实施例中提供的多任务处理方法的重复执行任务的流程图,如图2所示,所述S3、在所述任务执行异常并中断时,将执行异常的所述任务传送至二级任务处理程序中执行,包括:
S301、获取异常执行的所述任务对应的执行代码,调用所述二级任务处理程序执行所述执行代码,并实时记录所述执行代码的执行时间;
本步骤中从所述一级任务处理程序中获取异常执行的所述任务的所述执行代码,调用所述二级任务处理程序按照获取所述任务的顺序执行所述任务的所述执行代码,每开始执行一个所述执行代码时,调用一个对应的时间存储节点记录所述任务的执行时间,直到停止执行所述任务时,所述时间存储节点才停止记录所述任务的所述执行时间,比如任务C在一级任务执行程序中为异常执行,将任务C传送至二级任务执行程序中重新执行,开始执行任务C时,调用时间存储节点C记录任务C的执行时间,若任务C第一次执行异常,则在开始第二次执行任务C时,时间存储节点C记录任务C第二次的执行时间,所述执行时间指所述任务每一次重复执行时开始执行时间时刻与中断执行时间时刻之间的时间段。
S302、实时监控所述执行代码的执行情况,并根据所述执行代码的执行情况对所述任务进行异常判断,当所述任务正常执行时,停止执行所述任务的所述执行代码;当所述任务异常执行时,继续调用所述二级任务处理程序执行所述任务的所述执行代码,并实时记录执行所述任务的次数;
本步骤中实时监控所述二级任务处理程序中的所述任务的执行情况,根据所述执行情况对所述任务进行异常判断,对于异常执行的所述任务,则继续发送至所述二级任务处理程序中进行排队执行,比如任务C在所述二级任务处理程序中第一次执行结果为正常执行时,则停止执行任务C,若任务C在所述二级任务处理程序中第一次执行结果为异常执行时,则将任务C发送至所述二级任务处理程序中重新排队执行,若第二次执行结果仍然为异常执行时,继续发送至所述二级任务处理程序中重新排队执行。
本实施例中通过反复执行异常执行的所述任务,减少由于网络等原因导致的任务执行失败的情况,提高任务执行效率。
图3为本申请在一个实施例中提供的多任务处理方法中的终止执行任务的流程图,如图3所示,所述S4、实时监控所述任务在所述二级任务处理程序中的执行结果,并获取所述任务在所述二级任务处理程序中执行的次数,根据所述任务的执行结果和所述任务执行的次数判断是否终止所述任务,包括:
S401、实时监控所述任务在所述二级任务处理程序中的执行结果,并从所述二级任务处理程序中获取执行所述任务的次数及对应的执行时间;
本步骤中实时记录所述任务在所述二级任务处理程序中执行的所述次数以及每次执行的所述执行时间,比如任务C在所述二级任务处理程序中执行第一次的所述执行时间为T1,则记录为任务C-1次-T1,表示任务C执行1次耗时T1;若任务C在所述二级任务处理程序中执行第二次的所述执行时间为T2,则记录为任务C-2次-T1+T2。
S402、将所述次数与预设阈值进行比较,当所述次数低于所述阈值,且所述任务的执行结果为正常执行时,停止执行所述任务并将所述任务及对应的所述执行时间上传至数据库中;
本步骤中实时将所述任务的所述次数与所述阈值进行比较,当所述次数低于所述阈值时,且所述任务的执行结果为正常执行时,则停止执行所述任务,当所述次数低于所述阈值时,且所述任务的执行结果为异常执行时,则继续执行所述任务,比如阈值为10,任务C执行次数为6,且在第六次的执行结果为正常执行,则停止执行任务C,并将任务C及其执行时间上传至数据库中,若任务C的执行次数为6,且第六次的执行结果为异常执行,则继续执行任务C。
S403、当所述次数高于所述阈值时,且所述任务的执行结果一直为异常执行时,则停止执行所述任务,并向技术人员发送报警信息;
本步骤中若所述次数高于所述阈值时,且所述任务的执行结果一直为异常执行时,则停止执行所述任务,并发送报警信息,比如任务C执行次数为11,且第十一次的执行结果为异常执行,则停止执行任务C,并发送报警信息至技术人员。
本实施例中通过将执行所述任务的所述次数与预设阈值进行比较,及时终止存在异常的所述任务,提高任务系统的健壮性。
在一个实施例中,所述获取异常执行的所述任务对应的执行代码,调用所述二级任务处理程序执行所述执行代码,并实时记录所述执行代码的执行时间,包括:
调用设置在所述二级任务处理程序中的时间记录器实时记录所述任务每次执行的时间,所述时间记录器中包含多个时间存储节点,其中所述时间存储节点与所述任务一一对应;
本步骤中每开始执行一个所述任务的所述执行代码时,调用一个对应的时间存储节点记录所述任务的执行时间,直到停止执行所述任务时,所述时间存储节点才停止记录所述任务的所述执行时间,所述执行时间指所述任务每一次重复执行时开始执行时刻与中断执行时刻之间的时间段。
当停止执行所述任务时,将对应的所述时间存储节点所记录的所述任务每次执行的时间进行求和后得到所述任务的所述执行时间;
本步骤中根据求和公式计算停止执行的所述任务的所述执行时间,所述执行时间包含所述任务多次被执行的时间段的求和结果。
本实施例中通过时间存储节点记录所述任务的所述执行时间,提高了重复执行的所述任务的时间记录的准确性。
在一个实施例中,所述当停止执行所述任务时,将对应的所述时间存储节点所记录的所述任务每次执行的时间进行求和后得到所述任务的所述执行时间,包括:
获取所述任务对应的所述时间存储节点记录的每次执行的时间,将所述每次执行的时间进行求和后得到所述执行时间,计算公式如公式(1)所示,
ti=ti1+ti2+...+tin (1),
公式(1)中,ti表示任务i的所述执行时间,ti1表示任务i第1次执行的时间,ti2表示任务i第2次执行的时间,tin表示任务i第n次执行的时间,n表示非零自然数;
本步骤中通过获取所述任务每次执行的时间段,将多个时间段进行求和运算后得到所述任务的所述执行时间,比如任务C执行次数为6,所耗时间依次为30S、36S、29S、42S、28S、39S,求和得到任务C的所述执行时间为204S。
本实施例中通过求和的方式获取所述任务的所述执行时间,提高了记录所述任务的所述执行时间的准确性。
基于相同的构思,本申请还提供一种多任务处理装置,如图4所示,所述多任务处理装置包括一级执行模拟、传送模块、二级执行模块和发送警报模块,其中:一级执行模块,设置为启动多个任务,调用一级任务处理程序执行多个所述任务,并获取每个所述任务的执行起始时刻;传送模块,设置为在所述任务正常执行完成后,获取所述任务的执行完成时刻,根据所述任务的执行起始时刻和执行完成时刻计算得到正常执行周期;二级执行模块,设置为在所述任务执行异常并中断时,将执行异常的所述任务传送至二级任务处理程序中执行;发送警报模块,设置为实时监控所述任务在所述二级任务处理程序中的执行结果,并获取所述任务在所述二级任务处理程序中执行的次数,根据所述任务的执行结果和所述任务执行的次数判断是否终止所述任务。
在一个实施例中,所述一级执行模块包括:
获取任务单元,设置为获取多个任务,将多个所述任务对应的执行代码依次发送至所述一级任务执行程序中的线程池;
启动任务单元,设置为根据所述执行代码在所述线程池中的顺序依次申请对应的线程,启动所述线程开始执行所述执行代码,并获取开始执行所述任务的所述代码的起始时刻作为所述任务的执行起始时刻。
在一个实施例中,所述传送模块包括:
判断异常单元,设置为对所述一级任务处理程序中所述任务对应的执行代码的执行情况进行监控,当所述执行代码执行无异常时,判断所述任务为正常执行,当所述执行代码执行异常时,判断所述任务为异常执行;
获取周期单元,设置为获取正常执行的所述任务的时刻,将所述任务及对应的时间周期上传至所述数据库中,所述时间周期包括开始执行所述任务的时刻到完成执行所述任务的时刻之间的时间段。
在一个实施例中,所述二级执行模块包括:
重复执行单元,设置为获取异常执行的所述任务对应的执行代码,调用所述二级任务处理程序执行所述执行代码,并实时记录所述执行代码的执行时间;
实时判断单元,设置为实时监控所述执行代码的执行情况,并根据所述执行代码的执行情况对所述任务进行异常判断,当所述任务正常执行时,停止执行所述任务的所述执行代码;当所述任务异常执行时,继续调用所述二级任务处理程序执行所述任务的所述执行代码,并实时记录执行所述任务的次数。
在一个实施例中,所述发送警报模块包括:
监控单元,设置为实时监控所述任务在所述二级任务处理程序中的执行结果,并从所述二级任务处理程序中获取执行所述任务的次数及对应的执行时间;
比较单元,设置为将所述次数与预设阈值进行比较,当所述次数低于所述阈值,且所述任务的执行结果为正常执行时,停止执行所述任务并将所述任务及对应的所述执行时间上传至数据库中;
发送警报单元,设置为当所述次数高于所述阈值时,且所述任务的执行结果一直为异常执行时,则停止执行所述任务,并向技术人员发送报警信息。
在一个实施例中,所述重复执行单元包括:
记录时间单元,设置为调用设置在所述二级任务处理程序中的时间记录器实时记录所述任务每次执行的时间,所述时间记录器中包含多个时间存储节点,其中所述时间存储节点与所述任务一一对应;
计算单元,设置为当停止执行所述任务时,将对应的所述时间存储节点所记录的所述任务每次执行的时间进行求和后得到所述任务的所述执行时间。
在一个实施例中,所述计算单元包括:
计算时间单元,设置为获取所述任务对应的所述时间存储节点记录的每次执行的时间,将所述每次执行的时间进行求和后得到所述执行时间,计算公式如公式(1)所示,
ti=ti1+ti2+...+tin (1),
公式(1)中,ti表示任务i的所述执行时间,ti1表示任务i第1次执行的时间,ti2表示任务i第2次执行的时间,tin表示任务i第n次执行的时间,n表示非零自然数。
基于相同的技术构思,本申请实施例还提供一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个所述处理器执行所述计算机可读指令时实现上述各实施例中的多任务处理方法的步骤。其中,所述存储介质可以为非易失性存储介质。
基于相同的技术构思,本申请实施例还提供一种存储介质,所述存储介质可被处理器读写,所述存储介质存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个所述处理器执行所述计算机可读指令时实现上述各实施例中的多任务处理方法的步骤。其中,所述存储介质可以为非易失性存储介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁盘或光盘等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请一些示例性实施例,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种多任务处理方法,其特征在于,所述多任务处理方法包括:
启动多个任务,调用一级任务处理程序执行多个所述任务,并获取每个所述任务的执行起始时刻;
在所述任务正常执行完成后,获取所述任务的执行完成时刻,根据所述任务的执行起始时刻和执行完成时刻计算得到正常执行周期;
在所述任务执行异常并中断时,将执行异常的所述任务传送至二级任务处理程序中执行;
实时监控所述任务在所述二级任务处理程序中的执行结果,并获取所述任务在所述二级任务处理程序中执行的次数,根据所述任务的执行结果和所述任务执行的次数判断是否终止所述任务;
所述在所述任务执行异常并中断时,将执行异常的所述任务传送至二级任务处理程序中执行,包括:
获取异常执行的所述任务对应的执行代码,调用所述二级任务处理程序执行所述执行代码,并实时记录所述执行代码的执行时间;
实时监控所述执行代码的执行情况,并根据所述执行代码的执行情况对所述任务进行异常判断,当所述任务正常执行时,停止执行所述任务的所述执行代码;当所述任务异常执行时,继续调用所述二级任务处理程序执行所述任务的所述执行代码,并实时记录执行所述任务的次数;
所述实时监控所述任务在所述二级任务处理程序中的执行结果,并获取所述任务在所述二级任务处理程序中执行的次数,根据所述任务的执行结果和所述任务执行的次数判断是否终止所述任务,包括:
实时监控所述任务在所述二级任务处理程序中的执行结果,并从所述二级任务处理程序中获取执行所述任务的次数及对应的执行时间;
将所述次数与预设阈值进行比较,当所述次数低于所述阈值,且所述任务的执行结果为正常执行时,停止执行所述任务并将所述任务及对应的所述执行时间上传至数据库中;
当所述次数高于所述阈值时,且所述任务的执行结果一直为异常执行时,则停止执行所述任务,并向技术人员发送报警信息;
所述获取异常执行的所述任务对应的执行代码,调用所述二级任务处理程序执行所述执行代码,并实时记录所述执行代码的执行时间,包括:
调用设置在所述二级任务处理程序中的时间记录器实时记录所述任务每次执行的时间,所述时间记录器中包含多个时间存储节点,其中所述时间存储节点与所述任务一一对应;
当停止执行所述任务时,将对应的所述时间存储节点所记录的所述任务每次执行的时间进行求和后得到所述任务的所述执行时间。
2.如权利要求1所述的一种多任务处理方法,其特征在于,所述启动多个任务,调用一级任务处理程序执行多个所述任务,并获取每个所述任务的执行起始时刻,包括:
获取多个任务,将多个所述任务对应的执行代码依次发送至所述一级任务处理程序中的线程池;
根据所述执行代码在所述线程池中的顺序依次申请对应的线程,启动所述线程开始执行所述执行代码,并获取开始执行所述任务的所述执行代码的起始时刻作为所述任务的执行起始时刻。
3.如权利要求1所述的一种多任务处理方法,其特征在于,所述在所述任务正常执行完成后,获取所述任务的执行完成时刻,根据所述任务的执行起始时刻和执行完成时刻计算得到正常执行周期,包括:
对所述一级任务处理程序中所述任务对应的执行代码的执行情况进行监控,当所述执行代码执行无异常时,判断所述任务为正常执行,当所述执行代码执行异常时,判断所述任务为执行异常;
获取正常执行的所述任务的时刻,将所述任务及对应的时间周期上传至数据库中,所述时间周期包括开始执行所述任务的时刻到完成执行所述任务的时刻之间的时间段。
4.如权利要求1所述的一种多任务处理方法,其特征在于,所述当停止执行所述任务时,将对应的所述时间存储节点所记录的所述任务每次执行的时间进行求和后得到所述任务的所述执行时间,包括:
获取所述任务对应的所述时间存储节点记录的每次执行的时间,将所述每次执行的时间进行求和后得到所述执行时间,计算公式如公式(1)所示,
(1),
公式(1)中,ti表示任务i的所述执行时间,ti1表示任务i第1次执行的时间,ti2表示任务i第2次执行的时间,tin表示任务i第n次执行的时间,n表示非零自然数。
5.一种多任务处理装置,其特征在于,所述多任务处理装置包括:
一级执行模块,设置为启动多个任务,调用一级任务处理程序执行多个所述任务,并获取每个所述任务的执行起始时刻;
传送模块,设置为在所述任务正常执行完成后,获取所述任务的执行完成时刻,根据所述任务的执行起始时刻和执行完成时刻计算得到正常执行周期;
二级执行模块,设置为在所述任务执行异常并中断时,将执行异常的所述任务传送至二级任务处理程序中执行;
发送警报模块,设置为实时监控所述任务在所述二级任务处理程序中的执行结果,并获取所述任务在所述二级任务处理程序中执行的次数,根据所述任务的执行结果和所述任务执行的次数判断是否终止所述任务;
所述二级执行模块包括:
重复执行单元,设置为获取异常执行的所述任务对应的执行代码,调用所述二级任务处理程序执行所述执行代码,并实时记录所述执行代码的执行时间;
实时判断单元,设置为实时监控所述执行代码的执行情况,并根据所述执行代码的执行情况对所述任务进行异常判断,当所述任务正常执行时,停止执行所述任务的所述执行代码;当所述任务异常执行时,继续调用所述二级任务处理程序执行所述任务的所述执行代码,并实时记录执行所述任务的次数;
所述发送警报模块包括:
监控单元,设置为实时监控所述任务在所述二级任务处理程序中的执行结果,并从所述二级任务处理程序中获取执行所述任务的次数及对应的执行时间;
比较单元,设置为将所述次数与预设阈值进行比较,当所述次数低于所述阈值,且所述任务的执行结果为正常执行时,停止执行所述任务并将所述任务及对应的所述执行时间上传至数据库中;
发送警报单元,设置为当所述次数高于所述阈值时,且所述任务的执行结果一直为异常执行时,则停止执行所述任务,并向技术人员发送报警信息;
所述重复执行单元包括:
记录时间单元,设置为调用设置在所述二级任务处理程序中的时间记录器实时记录所述任务每次执行的时间,所述时间记录器中包含多个时间存储节点,其中所述时间存储节点与所述任务一一对应;
计算单元,设置为当停止执行所述任务时,将对应的所述时间存储节点所记录的所述任务每次执行的时间进行求和后得到所述任务的所述执行时间。
6.如权利要求5所述的一种多任务处理装置,其特征在于,所述一级执行模块包括:
获取任务单元,设置为获取多个任务,将多个所述任务对应的执行代码依次发送至所述一级任务处理程序中的线程池;
启动任务单元,设置为根据所述执行代码在所述线程池中的顺序依次申请对应的线程,启动所述线程开始执行所述执行代码,并获取开始执行所述任务的所述执行代码的起始时刻作为所述任务的执行起始时刻。
7.如权利要求5所述的一种多任务处理装置,其特征在于,所述传送模块包括:
判断异常单元,设置为对所述一级任务处理程序中所述任务对应的执行代码的执行情况进行监控,当所述执行代码执行无异常时,判断所述任务为正常执行,当所述执行代码执行异常时,判断所述任务为执行异常;
获取周期单元,设置为获取正常执行的所述任务的时刻,将所述任务及对应的时间周期上传至数据库中,所述时间周期包括开始执行所述任务的时刻到完成执行所述任务的时刻之间的时间段。
8.如权利要求5所述的一种多任务处理装置,其特征在于,所述计算单元包括:
计算时间单元,设置为获取所述任务对应的所述时间存储节点记录的每次执行的时间,将所述每次执行的时间进行求和后得到所述执行时间,计算公式如公式(1)所示,
(1),
公式(1)中,ti表示任务i的所述执行时间,ti1表示任务i第1次执行的时间,ti2表示任务i第2次执行的时间,tin表示任务i第n次执行的时间,n表示非零自然数。
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被一个或多个所述处理器执行时,使得一个或多个所述处理器执行如权利要求1至4中任一项所述的多任务处理方法的步骤。
10.一种存储介质,其特征在于,所述存储介质可被处理器读写,所述存储介质存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个所述处理器执行如权利要求1至4中任一项所述的多任务处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811521976.8A CN109783210B (zh) | 2018-12-13 | 2018-12-13 | 多任务处理方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811521976.8A CN109783210B (zh) | 2018-12-13 | 2018-12-13 | 多任务处理方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109783210A CN109783210A (zh) | 2019-05-21 |
CN109783210B true CN109783210B (zh) | 2023-10-20 |
Family
ID=66495829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811521976.8A Active CN109783210B (zh) | 2018-12-13 | 2018-12-13 | 多任务处理方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109783210B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112527541A (zh) | 2019-09-19 | 2021-03-19 | 华为技术有限公司 | 一种确定多核处理器中故障计算核的方法及电子设备 |
CN112596884B (zh) * | 2020-12-26 | 2024-06-11 | 中国农业银行股份有限公司 | 一种任务调整方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6304957B1 (en) * | 1993-02-26 | 2001-10-16 | Nippondenso Co., Ltd. | Multitask processing unit |
CN101425024A (zh) * | 2008-10-24 | 2009-05-06 | 中国移动通信集团山东有限公司 | 一种多任务处理方法及装置 |
CN101599027A (zh) * | 2009-06-30 | 2009-12-09 | 中兴通讯股份有限公司 | 一种线程池管理方法及其系统 |
CN103593242A (zh) * | 2013-10-15 | 2014-02-19 | 北京航空航天大学 | 基于Yarn框架的资源共享控制系统 |
CN104320433A (zh) * | 2014-09-28 | 2015-01-28 | 北京京东尚科信息技术有限公司 | 数据处理方法和分布式数据处理系统 |
CN105847083A (zh) * | 2016-03-22 | 2016-08-10 | 乐视云计算有限公司 | 一种业务集中监控方法及系统 |
CN106713944A (zh) * | 2016-12-30 | 2017-05-24 | 北京奇虎科技有限公司 | 一种流数据任务的处理方法和装置 |
CN107341051A (zh) * | 2016-05-03 | 2017-11-10 | 北京京东尚科信息技术有限公司 | 集群任务协调方法、系统和装置 |
CN107967189A (zh) * | 2016-10-20 | 2018-04-27 | 南京途牛科技有限公司 | 异常任务重试方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8381040B2 (en) * | 2009-10-26 | 2013-02-19 | International Business Machines Corporation | Relocatable interrupt handler for test generation and execution |
CN103593236B (zh) * | 2013-11-14 | 2017-02-22 | 华为技术有限公司 | 一种业务流程调度的计算机设备、方法和装置 |
-
2018
- 2018-12-13 CN CN201811521976.8A patent/CN109783210B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6304957B1 (en) * | 1993-02-26 | 2001-10-16 | Nippondenso Co., Ltd. | Multitask processing unit |
CN101425024A (zh) * | 2008-10-24 | 2009-05-06 | 中国移动通信集团山东有限公司 | 一种多任务处理方法及装置 |
CN101599027A (zh) * | 2009-06-30 | 2009-12-09 | 中兴通讯股份有限公司 | 一种线程池管理方法及其系统 |
CN103593242A (zh) * | 2013-10-15 | 2014-02-19 | 北京航空航天大学 | 基于Yarn框架的资源共享控制系统 |
CN104320433A (zh) * | 2014-09-28 | 2015-01-28 | 北京京东尚科信息技术有限公司 | 数据处理方法和分布式数据处理系统 |
CN105847083A (zh) * | 2016-03-22 | 2016-08-10 | 乐视云计算有限公司 | 一种业务集中监控方法及系统 |
CN107341051A (zh) * | 2016-05-03 | 2017-11-10 | 北京京东尚科信息技术有限公司 | 集群任务协调方法、系统和装置 |
CN107967189A (zh) * | 2016-10-20 | 2018-04-27 | 南京途牛科技有限公司 | 异常任务重试方法及装置 |
CN106713944A (zh) * | 2016-12-30 | 2017-05-24 | 北京奇虎科技有限公司 | 一种流数据任务的处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109783210A (zh) | 2019-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9846601B2 (en) | Method and apparatuses for determining a leak of resource and predicting usage of resource | |
CN106547635B (zh) | 一种作业的操作重试方法和装置 | |
TWI571737B (zh) | 軟體測試系統、方法及其非暫態電腦可讀取紀錄媒體 | |
JP6655926B2 (ja) | 異常診断システム | |
CN106354590A (zh) | 磁盘检测方法和装置 | |
CN109783210B (zh) | 多任务处理方法、装置、计算机设备及存储介质 | |
CN116089482A (zh) | 分析大规模数据处理作业 | |
CN110968864A (zh) | 安全事件的应急响应处理方法及装置 | |
CN107783879B (zh) | 一种用于分析工作流执行路径的方法与设备 | |
CN109542341B (zh) | 一种读写io监测方法、装置、终端及计算机可读存储介质 | |
KR101626967B1 (ko) | 해킹 방지를 위한 어플리케이션의 동작 방법 및 장치 | |
CN111078480B (zh) | 一种异常恢复方法和服务器 | |
US20070277059A1 (en) | Storage device, control device, and error reporting method | |
CN111737039A (zh) | 一种错误信息辅助提取方法、装置、设备及可读存储介质 | |
WO2020044898A1 (ja) | 機器状態監視装置及びプログラム | |
US10491468B2 (en) | Dynamic server allocation for automated server builds | |
US10255128B2 (en) | Root cause candidate determination in multiple process systems | |
Chan et al. | Debugging incidents in Google's distributed systems | |
CN113360389A (zh) | 一种性能测试方法、装置、设备及存储介质 | |
CN111858313A (zh) | 一种界面卡顿检测方法、装置及存储介质 | |
WO2024150269A1 (ja) | ファジング装置及びファジング方法 | |
CN118519805A (zh) | 一种故障线索检测方法、装置、设备及可读存储介质 | |
RU2824318C1 (ru) | Способ выявления аномалий в киберфизической системе в реальном времени | |
JP2018113028A (ja) | Itインフラストラクチャにおいて実行されるアプリケーションのバッチ処理を監視するための方法およびシステム | |
RU2825558C1 (ru) | Способ приведения потока наблюдений параметров киберфизической системы, поступающих в реальном времени, к равно-интервальной временной сетке |
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 |