CN107783829B - 任务处理方法、装置、存储介质和计算机设备 - Google Patents
任务处理方法、装置、存储介质和计算机设备 Download PDFInfo
- Publication number
- CN107783829B CN107783829B CN201710792848.6A CN201710792848A CN107783829B CN 107783829 B CN107783829 B CN 107783829B CN 201710792848 A CN201710792848 A CN 201710792848A CN 107783829 B CN107783829 B CN 107783829B
- Authority
- CN
- China
- Prior art keywords
- task
- executed
- split
- tasks
- thread
- 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
- 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
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
- G06F9/4862—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate
- G06F9/4868—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate with creation or replication
-
- 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/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
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)
Abstract
本发明涉及一种任务处理方法,所述方法包括:检测拆分任务表中是否有待执行拆分任务;若检测到拆分任务表中有待执行拆分任务,则获取所述待执行拆分任务对应的执行程序标识;若所述执行程序标识均相同,则统计所述待执行拆分任务的数量;根据所述待执行拆分任务的数量和所述待执行拆分任务对应的预设任务处理数量,创建与所述待执行拆分任务对应的任务线程;同步执行每一个所述任务线程;所述执行每一个所述任务线程,包括:根据所述待执行拆分任务对应的执行程序标识获取所述待执行拆分任务对应的程序名和运行参数;根据所述待执行拆分任务的运行参数执行所述执行程序名对应的执行程序。采用此方法,可提高任务处理的效率。此外,还提供了一种任务处理装置、存储介质和计算机设备。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种任务处理方法、装置、存储介质和计算机设备。
背景技术
在业务***中,随着业务量的不断增多,原有的一些批处理任务的执行时间变得越来越长,严重影响了任务的执行效率。
传统的任务处理方式通过将不同业务功能的批处理任务进行并行处理来提高任务的执行效率,然而,随着业务量的增多,同一业务功能的批处理任务的执行时间也越来越长,使得任务的执行效率低。
发明内容
本发明实施例提供了一种任务处理方法、装置、存储介质和计算机设备,可以提高任务的执行效率。
一种任务处理方法,所述方法包括:
检测拆分任务表中是否有待执行拆分任务;
若检测到拆分任务表中有待执行拆分任务,则获取所述待执行拆分任务对应的执行程序标识;
若所述执行程序标识均相同,则统计所述待执行拆分任务的数量;
根据所述待执行拆分任务的数量和所述待执行拆分任务对应的预设任务处理数量,创建与所述待执行拆分任务对应的任务线程;
同步执行每一个所述任务线程;
所述执行每一个所述任务线程,包括:
根据所述待执行拆分任务对应的执行程序标识获取所述待执行拆分任务对应的程序名和运行参数;
根据所述待执行拆分任务的运行参数执行所述执行程序名对应的执行程序。
在其中一个实施例中,所述根据所述待执行拆分任务的数量和所述待执行拆分任务对应的预设任务处理数量,创建与所述待执行拆分任务对应的任务线程,包括:若所述待执行拆分任务的数量小于所述待执行拆分任务对应的预设任务处理数量,则创建数量为所述待执行拆分任务的数量的任务线程;若所述待执行拆分任务的数量大于或等于所述待执行拆分任务对应的预设任务处理数量,则创建数量为所述预设任务处理数量的任务线程。
在其中一个实施例中,在所述同步执行每一个所述任务线程之后,还包括:当所述任务线程的执行时间达到预设执行时长时,检测是否有执行任务线程;若检测到有执行任务线程,则终止所述执行任务线程,并标记所述执行任务线程对应的待执行拆分任务为待执行超时任务;检测是否有待执行超时任务;若检测到有待执行超时任务,则获取处于空闲状态的任务线程;利用所述处于空闲状态的任务线程执行所述待执行超时任务。
在其中一个实施例中,在所述同步执行每一个所述任务线程之后,还包括:检测所述任务线程的执行是否发生异常;若检测到发生异常的任务线程;则获取所述发生异常的任务线程的异常行为信息,并将所述异常行为信息发送给管理终端。
在其中一个实施例中,所述方法还包括:检测批处理任务表中是否有待拆分批处理任务;若检测到批处理任务表中待拆分批处理任务,则获取与所述待拆分批处理任务对应的拆分方法;按照所述拆分方法拆分所述批处理任务;将拆分所述批处理任务后得到的拆分任务写入所述拆分任务表中,并将所述批处理任务对应的执行程序标识设置为每一个所述拆分任务对应的执行程序标识。
一种任务处理装置,所述装置包括:
待执行拆分任务检测模块,用于检测拆分任务表中是否有待执行拆分任务;
执行程序标识获取模块,用于若检测到拆分任务表中有待执行拆分任务,则获取每一个所述待执行拆分任务对应的执行程序标识;
待执行拆分任务数量统计模块,用于若所述执行程序标识均相同,则统计所述待执行拆分任务的数量;
任务线程创建模块,用于根据所述待执行拆分任务的数量和所述待执行拆分任务对应的预设任务处理数量,创建与所述待执行拆分任务对应的任务线程。
任务线程执行模块,同步执行每一个所述任务线程;
所述任务线程执行模块,用于根据所述待执行拆分任务对应的执行程序标识获取所述待执行拆分任务对应的程序名和运行参数;根据所述待执行拆分任务的运行参数执行所述执行程序名对应的执行程序。
在其中一个实施例中,所述任务线程创建模块,用于若所述待执行拆分任务的数量小于所述待执行拆分任务对应的预设任务处理数量,则创建数量为所述待执行拆分任务的数量的任务线程;若所述待执行拆分任务的数量大于或等于所述待执行拆分任务对应的预设任务处理数量,则创建数量为所述预设任务处理数量的任务线程。
在其中一个实施例中,所述装置还包括:任务线程检测模块,用于当所述任务线程的执行时间达到预设执行时长时,检测是否有执行任务线程;超时任务确定模块,用于若检测到有执行任务线程,则终止所述执行任务线程,并标记所述执行任务线程对应的待执行拆分任务为待执行超时任务;超时任务检测模块,用于检测是否有待执行超时任务;空闲任务线程获取模块,用于若检测到有待执行超时任务,则获取处于空闲状态的任务线程;超时任务执行模块,用于利用所述处于空闲状态的任务线程执行所述待执行超时任务。
一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如下步骤:
检测拆分任务表中是否有待执行拆分任务;
若检测到拆分任务表中有待执行拆分任务,则获取所述待执行拆分任务对应的执行程序标识;
若所述执行程序标识均相同,则统计所述待执行拆分任务的数量;
根据所述待执行拆分任务的数量和所述待执行拆分任务对应的预设任务处理数量,创建与所述待执行拆分任务对应的任务线程;
同步执行每一个所述任务线程;
所述执行每一个所述任务线程,包括:
根据所述待执行拆分任务对应的执行程序标识获取所述待执行拆分任务对应的程序名和运行参数;
根据所述待执行拆分任务的运行参数执行所述执行程序名对应的执行程序。
一种计算机设备,计算机设备包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算器程序时实现如下步骤:
检测拆分任务表中是否有待执行拆分任务;
若检测到拆分任务表中有待执行拆分任务,则获取所述待执行拆分任务对应的执行程序标识;
若所述执行程序标识均相同,则统计所述待执行拆分任务的数量;
根据所述待执行拆分任务的数量和所述待执行拆分任务对应的预设任务处理数量,创建与所述待执行拆分任务对应的任务线程;
同步执行每一个所述任务线程;
所述执行每一个所述任务线程,包括:
根据所述待执行拆分任务对应的执行程序标识获取所述待执行拆分任务对应的程序名和运行参数;
根据所述待执行拆分任务的运行参数执行所述执行程序名对应的执行程序。
上述任务处理方法、装置、存储介质和计算机设备,通过检测拆分任务表中是否有待执行拆分任务,若检测到拆分任务表中有待执行拆分任务,则获取待执行拆分任务对应的执行程序标识,若执行程序标识均相同,则统计待执行拆分任务的数量,根据待执行拆分任务的数量和待执行拆分任务对应的预设任务处理数量,创建与待执行拆分任务对应的任务线程,同步执行每一个任务线程,执行每一个任务线程,包括:根据待执行拆分任务对应的执行程序标识获取待执行拆分任务对应的程序名和运行参数,根据待执行拆分任务的运行参数执行程序名对应的执行程序。由于获取到的待执行拆分任务对应的执行程序标识均相同,则说明待执行拆分任务是由同一个批处理任务拆分而来的,再将这些待执行拆分任务进行并行执行,有效提高了批处理任务的执行效率;同时并行执行的任务线程是根据待执行拆分任务的数量和待执行拆分任务对应的预设任务处理数量确定的,进一步提高了批处理任务的执行效率。
附图说明
图1为一个实施例中任务处理方法的应用环境图;
图2为一个实施例中计算机设备的内部结构图;
图3为一个实施例中任务处理方法的流程图;
图4为一个实施例中超时任务处理方法的流程图;
图5为一个实施例中异常检测方法的流程图;
图6为一个实施例中批处理任务处理方法的流程图;
图7为一个实施例中任务处理装置的结构框图;
图8为一个实施例中超时任务处理装置的结构框图;
图9为一个实施例中异常检测装置的结构框图;
图10为一个实施例中批处理任务处理装置的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例提供的任务处理方法可应用于如图1所示的环境中。参考图1所示,服务器102将检测到的发生异常的任务线程的异常行为信息发送给终端104。具体的,服务器102通过网络与终端104进行通信,服务器检测拆分任务表中是否有待执行拆分任务,若检测到拆分任务表中有待执行拆分任务,则获取每一个待执行拆分任务对应的执行程序标识,若执行程序标识均相同,则统计待执行拆分任务的数量,根据待执行拆分任务的数量和待执行拆分任务对应的预设任务处理数量,创建与待执行拆分任务对应的任务线程;同步执行每一个任务线程,检测任务线程的执行是否发生异常,若检测到发生异常的任务线程;则获取发生异常的任务线程的异常行为信息,并将异常行为信息发送给终端104。终端104由运营管理人员操作,用于对拆分任务的执行进行监控,运营管理人员是具有运营管理权限的用户。这里的终端包括但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑、便携式穿戴设备等。
在一个实施例中,如图2所示,还提供了一种计算机设备,该计算机设备包括通过***总线连接的处理器、非易失性存储介质、内存储器和网络连接口。其中,非易失性存储介质中存储有操作***和计算机程序,该计算机程序用于实现本申请实施例中提供的适用于计算机设备的任务处理方法。处理器用于提高计算和控制能力,支撑整个计算机设备的运行。内存储器用于为非易失性存储介质中的操作***和计算机程序的运行提供环境。网络接口用于与终端进行网络通信。本领域技术人员可以理解,图2中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的服务器的限定,具体地服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,如图3所示,提供了一种任务处理方法,包括:
步骤302,检测拆分任务表中是否有待执行拆分任务。
拆分任务表是预先建立的用于存储将满足预设规则的批处理任务进行拆分后得到的拆分任务的数据库表。其中,满足预设规则的批处理任务可以是历史运行时间的平均值大于预设运行时间阈值的批处理任务,也可以是数据量大于预设数据量阈值的批处理任务等。
具体地,检测拆分任务表中是否有待执行拆分任务的实现方式,可以是:获取预先设置的待拆分任务的计划开始时间,将计划开始时间与当前时间对比,若计划开始时间与当前时间相同或计划开始时间早于当前时间,则该拆分任务为待执行拆分任务,也可以是:检测拆分任务表中拆分任务的执行状态,若执行状态为待执行,则该拆分任务为待执行拆分任务,其中,执行状态用于记录拆分任务的执行进度,当在拆分任务表中添加拆分任务时,该拆分任务的执行状态为是待执行;创建任务线程后,开始并行执行拆分任务,此时拆分任务的执行状态是执行中;当拆分任务执行完毕,修改该拆分任务的执行状态为已执行。
步骤304,若检测到拆分任务表中有待执行拆分任务,则获取每一个待执行拆分任务对应的执行程序标识。
本实施例中,执行程序是用于执行拆分任务的程序代码;执行程序标识用于唯一标识执行拆分任务对应的程序代码。
步骤306,若执行程序标识均相同,则统计待执行拆分任务的数量。
若待执行拆分任对应的执行程序标识均相同,则说明待执行拆分任务是由同一个批处理任务拆分而来的。
本实施例中,统计待执行拆分任务的数量,用于后续的创建并行任务线程。
步骤308,根据待执行拆分任务的数量和待执行拆分任务对应的预设任务处理数量,创建与待执行拆分任务对应的任务线程。
本实施例中,待执行拆分任务对应的预设任务处理数量是预先设置的与待拆分任务对应的业务模块允许执行的最大任务数量值,如待执行拆分任务为上海机构的制证任务,则其对应的业务模块为制证模块,制证模块根据其数据量设置允许执行的最大任务数量值为7。
根据待执行拆分任务的数量和待执行拆分任务对应的预设任务处理数量,创建与待执行拆分任务对应的任务线程,包括:若待执行拆分任务的数量小于待执行拆分任务对应的预设任务处理数量,则创建数量为待执行拆分任务的数量的任务线程;若待执行拆分任务的数量大于或等于待执行拆分任务对应的预设任务处理数量,则创建数量为预设任务处理数量的任务线程。例如,若拆分任务表中具有相同程序执行标识的待拆分任务的个数有14个,该待拆分任务的预设任务处理数量是7个,则创建7个任务线程,每个任务线程串行执行2个拆分任务。
其他实施例中,若待执行拆分任对应的执行程序标识不相同,则根据执行程序标识将待拆分执行任务进行分类,统计每一类待执行任务的数量,再分别获取每一类待拆分任务对应的预设任务处理数量,根据每一类待执行任务的数量和预设任务处理数量创建任务线程。例如,检测到拆分任务表中当前需要执行的拆分任务有a1,a2,a3,b1,b2,c1,c2和c3。其中,a1,a2和a3具有相同的执行程序标识,属于同一类型(类型a)的待执行拆分任务;b1和b2具有相同的执行程序标识,属于同一类型(类型b)的待执行拆分任务;c1,c2和c3具有相同的执行任务标识,属于同一类型(类型c)的待执行拆分任务。又,具有相同执行程序标识的待拆分任务对应于同一个业务模块,如类型a对应的业务模块允许执行的最大任务数量值是2,类型b对应的业务模块允许执行的最大任务数量值是3,类型a对应的业务模块允许执行的最大任务数量值是4,则创建7个任务线程,其中两个任务线程对应于类型a的待执行任务(如a1和a2对应于同一任务线程1,a3对应于任务线程2),两个任务线程对应于类型b的待执行任务(b1对应于任务线程3,b2对应于任务线程4),剩下的三个任务线程对应于类型c的待执行任务(c1对应于任务线程5,c2对应于任务线程6,c2对应于任务线程7)。
步骤310,同步执行每一个任务线程。
本实施例中,在创建了与每一个待执行拆分任务对应的任务线程之后,并行执行每一个任务线程,以提高待拆分执行任务对应的批处理任务串行处理数据导致耗时久,影响任务执行效率。
其中,执行每一个任务线程,包括:
步骤3102,根据待执行拆分任务对应的执行程序标识获取待执行拆分任务对应的程序名和运行参数。
本实施例中,将批处理任务按照与之对应预设拆分方法拆分成拆分任务并保存拆分任务信息后,还需要设置拆分任务对应的执行程序信息。其中拆分任务信息包括拆分任务对应的执行程序标识,拆分任务标识和计划开始时间等;执行程序信息包括执行程序标识,执行程序名以及运行参数等。
步骤3104,根据待执行拆分任务的运行参数执行执行程序名对应的执行程序。
本实施例中,可通过待执行拆分任务对应的执行程序名和运行参数,来调用待执行拆分任务对应的执行程序,从而实现待执行拆分任务的执行。如“gbs_blacklist(region_code)”,gbs_blacklist是理赔案件黑名单识别任务对应的程序名,region_cod是运行参数,表示理赔案件所属机构。
本实施例中,由于获取到的待执行拆分任务对应的执行程序标识均相同,则说明待执行拆分任务是由同一个批处理任务拆分而来的,再将这些待执行拆分任务进行并行执行,有效提高了批处理任务的执行效率;同时并行执行的任务线程是根据待执行拆分任务的数量和待执行拆分任务对应的预设任务处理数量确定的,进一步提高了批处理任务的执行效率。
在一个实施例中,如图4所示,在步骤310之后,还包括:
步骤402,当任务线程的执行时间达到预设执行时长时,检测是否有执行任务线程。
本实施例中,预设执行时长是预先设置的待拆分任务对应的执行程序所允许执行的最长时间值,例如5小时;执行任务线程是指处于运行状态的任务线程。
步骤404,若检测到有执行任务线程,则终止执行任务线程,并标记执行任务线程对应的待执行拆分任务为待执行超时任务。
本实施例中,根据预设执行时长确定待执行拆分任务中的超时任务,再终止超时任务的执行,将超时任务单独执行,有效提高了待执行拆分任务的执行效率。
步骤406,检测是否有待执行超时任务。
本实施例中,在完成待执行拆分任务的其他非超时任务顺利执行后,对待执行拆分任务中的超时任务进行单独处理。
步骤408,若检测到有待执行超时任务,则获取处于空闲状态的任务线程。
线程的状态有新建、就绪、运行、阻塞和死亡五种状态。具体地,当使用new操作符创建一个线程时,例如new Thread(r),线程还没有开始运行,此时线程处在新建状态;一个新创建的线程并不自动开始运行,要执行线程,必须调用线程的start()方法,当线程对象调用start()方法时,即启动了线程,start()方法创建线程运行的***资源,并调度线程运行run()方法,当start()方法返回后,线程就处于就绪状态;当线程获得CPU时间后,线程进入运行状态,真正开始执行run()方法;阻塞状态是正在运行的线程没有运行结束,暂时让出CPU,这时其他处于就绪状态的线程就可以获得CPU时间,进入运行状态;当线程的run()方法完成时,则线程为死亡态。本实施例中,空闲状态对应于阻塞状态。
步骤410,利用处于空闲状态的任务线程执行待执行超时任务。
本实施例中,在成功获取到空闲任务线程后,利用该空闲任务线程执行被标记的待执行超时任务。
本实施例中,通过将待执行任务的执行时间和预设执行时长进行对比,确定待执行拆分任务中的超时任务,再终止超时任务的执行,将超时任务单独执行,有效提高了待执行拆分任务的执行效率。
在一个实施例中,如图5所示,在步骤310之后,还包括:
步骤502,检测任务线程的执行是否发生异常。
本实施例中,可通过执行预设数据库查询语句,对待执行拆分任务的执行情况进行定期监控,如每小时一次。
步骤504,若检测到发生异常的任务线程;则获取发生异常的任务线程的异常行为信息,并将异常行为信息发送给管理终端。
当检测到待执行拆分任务发生异常时,获取该异常对应的异常信息,并发送给管理终端,以使管理终端对发生异常的待执行拆分任务进行后续处理,如通过持续监控找出异常原因,从而解决异常等。
本实施例中,通过对待执行拆分任务的执行过程进行监控,从而减少了执行待拆分任务所带来的事件风险,提高了待拆分任务执行的效率。
在一个实施例中,如图6所示,在步骤302之前,还包括:
步骤602,检测批处理任务表中是否有待拆分批处理任务。
本实施例中,批处理任务是可进行批量数据处理且需要拆分的任务。本实施例中,可通过读取批处理任务的状态来确定,写入批处理任务表的批处理任务的初始状态为待拆分;当获取与待拆分任务对应的拆分方法,并按照该拆分方法进行拆分时,批处理任务的状态为拆分中;当成功完成批处理的拆分并将拆分后的得到的拆分任务写入拆分任表时,批处理任务的状态为已拆分。
步骤604,若检测到批处理任务表中有待拆分批处理任务,则获取与待拆分批处理任务对应的拆分方法。
本实施例中,拆分方法可以是按照任务对应的机构进行拆分(设置机构参数,如:机构运行类型,即运行全部机构,还是运行部分机构;运行的机构标识串,即机构运行类型为运行部分机构时,给出需要运行的机构表标识);也可以是按照任务对应的数据量进行拆分(设置拆分组数,并按照预设拆分SQL语句模板进行拆分);还可以按照任务对应的客户或产品,如基金交易的定时任务,可按照基金持有人或基金产品进行拆分等。
步骤606,按照拆分方法拆分批处理任务。
在获取了与待拆分批处理任务对应的拆分方法后,按照该拆分方法对该待拆分批处理任务进行拆分。
步骤608,将拆分批处理任务后得到的拆分任务写入拆分任务表中,并将批处理任务对应的执行程序标识设置为每一个拆分任务对应的执行程序标识。
将拆分批处理任务后得到的拆分任务写入拆分任务表中,并对拆分任务设置相应属性,包括:将批处理任务对应的执行程序标识设置为每一个拆分任务对应的执行程序标识,设置任务执行计划时间和任务优先级等。
本实施例中,通过对批处理任务进行拆分,为后续同一个批处理任务对应的拆分任务的并行处理提供了先决条件。
在一个实施例中,如图7所示,提供了一种任务处理装置,包括:
待执行拆分任务检测模块702,用于检测拆分任务表中是否有待执行拆分任务。
执行程序标识获取模块704,用于若检测到拆分任务表中有待执行拆分任务,则获取每一个待执行拆分任务对应的执行程序标识。
待执行拆分任务数量统计模块706,用于若执行程序标识均相同,则统计待执行拆分任务的数量。
任务线程创建模块708,用于根据待执行拆分任务的数量和待执行拆分任务对应的预设任务处理数量,创建与待执行拆分任务对应的任务线程。
任务线程执行模块710,同步执行每一个任务线程。
任务线程执行模块710用于根据待执行拆分任务对应的执行程序标识获取待执行拆分任务对应的程序名和运行参数;根据待执行拆分任务的运行参数执行程序名对应的执行程序。
在一个实施例中,任务线程创建模块708,用于若待执行拆分任务的数量小于待执行拆分任务对应的预设任务处理数量,则创建数量为待执行拆分任务的数量的任务线程;若待执行拆分任务的数量大于或等于待执行拆分任务对应的预设任务处理数量,则创建数量为预设任务处理数量的任务线程。
在一个实施例中,如图8所示,上述装置还包括:
任务线程检测模块802,用于当任务线程的执行时间达到预设执行时长时,检测是否有执行任务线程。
超时任务确定模块804,用于若检测到有执行任务线程,则终止执行任务线程,并标记执行任务线程对应的待执行拆分任务为待执行超时任务。
超时任务检测模块806,用于检测是否有待执行超时任务。
空闲任务线程获取模块808,用于若检测到有待执行超时任务,则获取处于空闲状态的任务线程。
超时任务执行模块810,用于利用处于空闲状态的任务线程执行待执行超时任务。
在一个实施例中,如图9所示,上述装置还包括:
异常检测模块902,用于检测任务线程的执行是否发生异常。
异常信息发送模块904,用于若检测到发生异常的任务线程;则获取发生异常的任务线程的异常行为信息,并将异常行为信息发送给管理终端。
在一个实施例中,如图10所示,上述装置还包括:
批处理任务检测模块1002,用于检测批处理任务表中是否有待拆分批处理任务。
拆分方法获取模块1004,拆分若检测到批处理任务表中待拆分批处理任务,则获取与待拆分批处理任务对应的拆分方法;
批处理任务拆分模块1006,用于按照拆分方法拆分批处理任务;
拆分任务写入模块1008,用于将拆分批处理任务后得到的拆分任务写入拆分任务表中,并将批处理任务对应的执行程序标识设置为每一个拆分任务对应的执行程序标识。
上述任务处理装置可以实现为一种计算机程序的形式,计算机程序可以在如图2所示的计算机设备上运行。
在一个实施例中,提供了一种计算机设备,计算机设备包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算器程序时实现如下步骤:
检测拆分任务表中是否有待执行拆分任务;
若检测到拆分任务表中有待执行拆分任务,则获取每一个待执行拆分任务对应的执行程序标识;
若执行程序标识均相同,则统计待执行拆分任务的数量;
根据待执行拆分任务的数量和待执行拆分任务对应的预设任务处理数量,创建与待执行拆分任务对应的任务线程;
同步执行每一个任务线程;
执行每一个任务线程,包括:
根据待执行拆分任务对应的执行程序标识获取待执行拆分任务对应的程序名和运行参数;
根据待执行拆分任务的运行参数执行程序名对应的执行程序。
在一个实施例中,计算机设备的处理器执行的根据待执行拆分任务的数量和待执行拆分任务对应的预设任务处理数量,创建与待执行拆分任务对应的任务线程的步骤,包括:若待执行拆分任务的数量小于待执行拆分任务对应的预设任务处理数量,则创建数量为待执行拆分任务的数量的任务线程;若待执行拆分任务的数量大于或等于待执行拆分任务对应的预设任务处理数量,则创建数量为预设任务处理数量的任务线程。
在一个实施例中,计算机设备的处理器还执行如下步骤:当任务线程的执行时间达到预设执行时长时,检测是否有执行任务线程;若检测到有执行任务线程,则终止执行任务线程,并标记执行任务线程对应的待执行拆分任务为待执行超时任务;检测是否有待执行超时任务;若检测到有待执行超时任务,则获取处于空闲状态的任务线程;利用处于空闲状态的任务线程执行待执行超时任务。
在一个实施例中,计算机设备的处理器还执行如下步骤:检测任务线程的执行是否发生异常;若检测到发生异常的任务线程;则获取发生异常的任务线程的异常行为信息,并将异常行为信息发送给管理终端。
在一个实施例中,计算机设备的处理器还执行如下步骤:检测批处理任务表中是否有待拆分批处理任务;若检测到批处理任务表中待拆分批处理任务,则获取与待拆分批处理任务对应的拆分方法;按照拆分方法拆分批处理任务;将拆分批处理任务后得到的拆分任务写入拆分任务表中,并将批处理任务对应的执行程序标识设置为每一个拆分任务对应的执行程序标识。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如下步骤:
检测拆分任务表中是否有待执行拆分任务;
若检测到拆分任务表中有待执行拆分任务,则获取每一个待执行拆分任务对应的执行程序标识;
若执行程序标识均相同,则统计待执行拆分任务的数量;
根据待执行拆分任务的数量和待执行拆分任务对应的预设任务处理数量,创建与待执行拆分任务对应的任务线程;
同步执行每一个任务线程;
执行每一个任务线程,包括:
根据待执行拆分任务对应的执行程序标识获取待执行拆分任务对应的程序名和运行参数;
根据待执行拆分任务的运行参数执行程序名对应的执行程序。
在一个实施例中,处理器执行的根据待执行拆分任务的数量和待执行拆分任务对应的预设任务处理数量,创建与待执行拆分任务对应的任务线程的步骤,包括:若待执行拆分任务的数量小于待执行拆分任务对应的预设任务处理数量,则创建数量为待执行拆分任务的数量的任务线程;若待执行拆分任务的数量大于或等于待执行拆分任务对应的预设任务处理数量,则创建数量为预设任务处理数量的任务线程。
在一个实施例中,处理器还执行如下步骤:当任务线程的执行时间达到预设执行时长时,检测是否有执行任务线程;若检测到有执行任务线程,则终止执行任务线程,并标记执行任务线程对应的待执行拆分任务为待执行超时任务;检测是否有待执行超时任务;若检测到有待执行超时任务,则获取处于空闲状态的任务线程;利用处于空闲状态的任务线程执行待执行超时任务。
在一个实施例中,处理器还执行如下步骤:检测任务线程的执行是否发生异常;若检测到发生异常的任务线程;则获取发生异常的任务线程的异常行为信息,并将异常行为信息发送给管理终端。
在一个实施例中,处理器还执行如下步骤:检测批处理任务表中是否有待拆分批处理任务;若检测到批处理任务表中待拆分批处理任务,则获取与待拆分批处理任务对应的拆分方法;按照拆分方法拆分批处理任务;将拆分批处理任务后得到的拆分任务写入拆分任务表中,并将批处理任务对应的执行程序标识设置为每一个拆分任务对应的执行程序标识。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (8)
1.一种任务处理方法,所述方法包括:
检测拆分任务表中是否有待执行拆分任务;
若检测到拆分任务表中有待执行拆分任务,则获取所述待执行拆分任务对应的执行程序标识;
若所述执行程序标识均相同,则统计所述待执行拆分任务的数量;
根据所述待执行拆分任务的数量和所述待执行拆分任务对应的预设任务处理数量,创建与所述待执行拆分任务对应的任务线程;
同步执行每一个所述任务线程;
所述执行每一个所述任务线程,包括:
根据所述待执行拆分任务对应的执行程序标识获取所述待执行拆分任务对应的程序名和运行参数;
根据所述待执行拆分任务的运行参数执行所述程序名对应的执行程序;
所述根据所述待执行拆分任务的数量和所述待执行拆分任务对应的预设任务处理数量,创建与所述待执行拆分任务对应的任务线程,包括:
若所述待执行拆分任务的数量小于所述待执行拆分任务对应的预设任务处理数量,则创建数量为所述待执行拆分任务的数量的任务线程;
若所述待执行拆分任务的数量大于或等于所述待执行拆分任务对应的预设任务处理数量,则创建数量为所述预设任务处理数量的任务线程。
2.根据权利要求1所述的方法,其特征在于,在所述同步执行每一个所述任务线程之后,还包括:
当所述任务线程的执行时间达到预设执行时长时,检测是否有执行任务线程;
若检测到有执行任务线程,则终止所述执行任务线程,并标记所述执行任务线程对应的待执行拆分任务为待执行超时任务;
检测是否有待执行超时任务;
若检测到有待执行超时任务,则获取处于空闲状态的任务线程;
利用所述处于空闲状态的任务线程执行所述待执行超时任务。
3.根据权利要求1所述的方法,其特征在于,在所述同步执行每一个所述任务线程之后,还包括:
检测所述任务线程的执行是否发生异常;
若检测到发生异常的任务线程;则获取所述发生异常的任务线程的异常行为信息,并将所述异常行为信息发送给管理终端。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
检测批处理任务表中是否有待拆分批处理任务;
若检测到批处理任务表中待拆分批处理任务,则获取与所述待拆分批处理任务对应的拆分方法;
按照所述拆分方法拆分所述批处理任务;
将拆分所述批处理任务后得到的拆分任务写入所述拆分任务表中,并将所述批处理任务对应的执行程序标识设置为每一个所述拆分任务对应的执行程序标识。
5.一种任务处理装置,其特征在于,所述装置包括:
待执行拆分任务检测模块,用于检测拆分任务表中是否有待执行拆分任务;
执行程序标识获取模块,用于若检测到拆分任务表中有待执行拆分任务,则获取每一个所述待执行拆分任务对应的执行程序标识;
待执行拆分任务数量统计模块,用于若所述执行程序标识均相同,则统计所述待执行拆分任务的数量;
任务线程创建模块,用于根据所述待执行拆分任务的数量和所述待执行拆分任务对应的预设任务处理数量,创建与所述待执行拆分任务对应的任务线程;
任务线程执行模块,同步执行每一个所述任务线程;
所述任务线程执行模块,用于根据所述待执行拆分任务对应的执行程序标识获取所述待执行拆分任务对应的程序名和运行参数;根据所述待执行拆分任务的运行参数执行所述程序名对应的执行程序;
所述任务线程创建模块,用于若所述待执行拆分任务的数量小于所述待执行拆分任务对应的预设任务处理数量,则创建数量为所述待执行拆分任务的数量的任务线程;若所述待执行拆分任务的数量大于或等于所述待执行拆分任务对应的预设任务处理数量,则创建数量为所述预设任务处理数量的任务线程。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
任务线程检测模块,用于当所述任务线程的执行时间达到预设执行时长时,检测是否有执行任务线程;
超时任务确定模块,用于若检测到有执行任务线程,则终止所述执行任务线程,并标记所述执行任务线程对应的待执行拆分任务为待执行超时任务;
超时任务检测模块,用于检测是否有待执行超时任务;
空闲任务线程获取模块,用于若检测到有待执行超时任务,则获取处于空闲状态的任务线程;
超时任务执行模块,用于利用所述处于空闲状态的任务线程执行所述待执行超时任务。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至4中任一项所述方法的步骤。
8.一种计算机设备,所述计算机设备包括存储器,处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至4中任一项所述方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710792848.6A CN107783829B (zh) | 2017-09-05 | 2017-09-05 | 任务处理方法、装置、存储介质和计算机设备 |
PCT/CN2018/088617 WO2019047565A1 (zh) | 2017-09-05 | 2018-05-28 | 任务处理方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710792848.6A CN107783829B (zh) | 2017-09-05 | 2017-09-05 | 任务处理方法、装置、存储介质和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107783829A CN107783829A (zh) | 2018-03-09 |
CN107783829B true CN107783829B (zh) | 2020-04-24 |
Family
ID=61437827
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710792848.6A Active CN107783829B (zh) | 2017-09-05 | 2017-09-05 | 任务处理方法、装置、存储介质和计算机设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107783829B (zh) |
WO (1) | WO2019047565A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107783829B (zh) * | 2017-09-05 | 2020-04-24 | 平安科技(深圳)有限公司 | 任务处理方法、装置、存储介质和计算机设备 |
CN109725996B (zh) * | 2018-06-15 | 2023-07-21 | 中国平安人寿保险股份有限公司 | 任务模式选择与任务执行方法、装置、设备及存储介质 |
CN109120679B (zh) * | 2018-07-27 | 2021-09-28 | 平安科技(深圳)有限公司 | 任务分配方法及装置 |
CN109254768B (zh) * | 2018-08-16 | 2024-04-12 | 中国平安人寿保险股份有限公司 | 制证信息的获取方法、终端设备及介质 |
CN109670932B (zh) * | 2018-09-25 | 2024-02-20 | 平安科技(深圳)有限公司 | 信贷数据核算方法、装置、***和计算机存储介质 |
CN109658043A (zh) * | 2018-10-16 | 2019-04-19 | 深圳壹账通智能科技有限公司 | 催收数据处理方法、装置、设备和存储介质 |
CN110162392B (zh) * | 2019-05-29 | 2022-10-25 | 北京达佳互联信息技术有限公司 | 周期性任务的执行方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103810048A (zh) * | 2014-03-11 | 2014-05-21 | 国家电网公司 | 一种面向资源利用最优的线程数量自动调整方法及装置 |
CN105718243A (zh) * | 2014-12-01 | 2016-06-29 | 金蝶软件(中国)有限公司 | Erp***中数据批量操作的方法和*** |
CN106897203A (zh) * | 2017-03-29 | 2017-06-27 | 北京经纬恒润科技有限公司 | 一种cpu负载率计算方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103279331A (zh) * | 2013-05-31 | 2013-09-04 | 中国电子科技集团公司第十五研究所 | Android***多任务并发处理方法及装置 |
CN107783829B (zh) * | 2017-09-05 | 2020-04-24 | 平安科技(深圳)有限公司 | 任务处理方法、装置、存储介质和计算机设备 |
-
2017
- 2017-09-05 CN CN201710792848.6A patent/CN107783829B/zh active Active
-
2018
- 2018-05-28 WO PCT/CN2018/088617 patent/WO2019047565A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103810048A (zh) * | 2014-03-11 | 2014-05-21 | 国家电网公司 | 一种面向资源利用最优的线程数量自动调整方法及装置 |
CN105718243A (zh) * | 2014-12-01 | 2016-06-29 | 金蝶软件(中国)有限公司 | Erp***中数据批量操作的方法和*** |
CN106897203A (zh) * | 2017-03-29 | 2017-06-27 | 北京经纬恒润科技有限公司 | 一种cpu负载率计算方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2019047565A1 (zh) | 2019-03-14 |
CN107783829A (zh) | 2018-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107783829B (zh) | 任务处理方法、装置、存储介质和计算机设备 | |
CN107688496B (zh) | 任务分布式处理方法、装置、存储介质和服务器 | |
CN106980636B (zh) | 保单数据处理方法和装置 | |
CN109039740B (zh) | 一种处理运维监控告警的方法及设备 | |
WO2019153505A1 (zh) | 一种故障修复数据包的发布方法及服务器 | |
CN107451040B (zh) | 故障原因的定位方法、装置及计算机可读存储介质 | |
CN110765026A (zh) | 自动化测试方法、装置、存储介质及设备 | |
CN111694718A (zh) | 内网用户异常行为识别方法、装置、计算机设备及可读存储介质 | |
CN109324959B (zh) | 一种自动转移数据的方法、服务器及计算机可读存储介质 | |
WO2020211253A1 (zh) | 分布式***中主机数量弹性伸缩方法、装置和计算机设备 | |
CN108874618A (zh) | Cognos进程的监控方法、装置、计算机设备和存储介质 | |
CN107729213B (zh) | 一种后台任务监控方法及装置 | |
CN110647472A (zh) | 崩溃信息统计方法、装置、计算机设备及存储介质 | |
CN108255703B (zh) | 一种sql脚本的故障修复方法及其终端 | |
CN110674149A (zh) | 业务数据处理方法、装置、计算机设备和存储介质 | |
CN113076231A (zh) | 服务器应用场景设置方法、***、终端及存储介质 | |
WO2023185335A1 (zh) | 一种崩溃聚类方法、装置、电子设备以及存储介质 | |
WO2020224218A1 (zh) | 基于hbase的数据写入方法、***、装置及可读存储介质 | |
CN114637656B (zh) | 基于Redis的监控方法、装置、存储介质和设备 | |
CN110209497A (zh) | 一种主机资源动态扩缩容的方法及*** | |
US10255128B2 (en) | Root cause candidate determination in multiple process systems | |
CN109376027A (zh) | 一种异常销毁进程的处理方法及终端 | |
CN114003339A (zh) | 僵尸虚拟机的检测方法、装置、计算机设备和存储介质 | |
CN108874325B (zh) | 数据打印方法及*** | |
CN107665163B (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 |