一种任务拆分方法及系统的制作方法

文档序号:9396749阅读:462来源:国知局
一种任务拆分方法及系统的制作方法
【技术领域】
[0001]本发明涉及任务拆分技术领域,尤其涉及的是一种任务拆分方法及系统。
【背景技术】
[0002]一个作业由多个任务组成,普通系统通常是按照在一条线程中顺序执行作业中的任务,作业耗时等于该作业中所有任务耗时的总和。在碰到作业中有大数据量大且耗时长的任务时,使用运筹的思想改进系统,在多条线程并行执行多个任务,能有效的减少作业耗时。在这种情况下,耗时最长的任务决定了作业的最终耗时。
[0003]如果作业中一个任务的耗时超过作业中其他任务耗时之和,就会出现一条线程忙碌,其余线程被闲置的情况。此时,减少作业耗时的效果就打了折扣。
[0004]因此,现有技术还有待于改进和发展。

【发明内容】

[0005]鉴于上述现有技术的不足,本发明的目的在于提供一种任务拆分方法及系统,旨在解决现有技术中当作业中有一个任务的耗时超过作业中其他任务耗时之和,出现一条线程忙碌,其余线程被闲置,从而导致作业耗时的缺陷。
[0006]本发明的技术方案如下:
一种任务拆分方法,其中,所述方法包括以下步骤:
A、当检测到作业进程时,根据预设的作业模板将作业进程拆分为多个任务单元,配置每一任务单元的执行流程,并依次初始化任务实例;
B、判断任务实例的数量级别是否超出预先设定的任务数量阈值,当超出时则将任务实例拆分为指定数量的子任务实例,当未超出时则不拆分;
C、将所述任务实例或所述子任务实例放入任务池中执行,直至执行完毕。
[0007]所述任务拆分方法,其中,所述步骤A具体包括:
Al、当检测到作业进程时,根据预设的作业模板将作业进程拆分为多个任务单元;
A2、配置作业模板,并获取作业中任务单元的执行流程;
A3、获取已有作业模板,并判断该作业模板是否有效,当有效时则初始化对应的作业实例;
A4、根据作业模板中任务单元的执行流程,依次初始化任务实例。
[0008]所述任务拆分方法,其中,所述作业实例包括作业的有限期、控制类型、作业状态及执行周期。
[0009]所述任务拆分方法,其中,所述步骤A3中按指定周期定时获取已有作业模板,或通过socket通信实时触发获取已有作业模板。
[0010]—种任务拆分系统,其中,包括:
拆分模块,用于当检测到作业进程时,根据预设的作业模板将作业进程拆分为多个任务单元,配置每一任务单元的执行流程,并依次初始化任务实例; 判断模块,用于判断任务实例的数量级别是否超出预先设定的任务数量阈值,当超出时则将任务实例拆分为指定数量的子任务实例,当未超出时则不拆分;
任务执行模块,用于将所述任务实例或所述子任务实例放入任务池中执行,直至执行完毕。
[0011]所述任务拆分系统,其中,所述拆分模块具体包括:
任务拆分单元,用于当检测到作业进程时,根据预设的作业模板将作业进程拆分为多个任务单元;
配置单元,用于配置作业模板,并获取作业中任务单元的执行流程;
作业初始化单元,用于获取已有作业模板,并判断该作业模板是否有效,当有效时则初始化对应的作业实例;
任务初始化单元,用于根据作业模板中任务单元的执行流程,依次初始化任务实例。
[0012]所述任务拆分系统,其中,所述作业实例包括作业的有限期、控制类型、作业状态及执行周期。
[0013]所述任务拆分系统,其中,所述作业初始化单元中按指定周期定时获取已有作业模板,或通过socket通信实时触发获取已有作业模板。
[0014]本发明所述的一种任务拆分方法及系统,方法包括:当检测到作业进程时,根据预设的作业模板将作业进程拆分为多个任务单元,配置每一任务单元的执行流程,并依次初始化任务实例;判断任务实例的数量级别是否超出预先设定的任务数量阈值,当超出时则将任务实例拆分为指定数量的子任务实例,当未超出时则不拆分;将所述任务实例或所述子任务实例放入任务池中执行,直至执行完毕。本发明中将复杂的大任务处理,根据动作分解为多个或关联或独立的子任务,能有效的减少作业耗时,并能够适用于各种无规则大任务处理,可拓展性高。
【附图说明】
[0015]图1为本发明所述任务拆分方法较佳实施例的流程图。
[0016]图2为本发明所述任务拆分系统较佳实施例的结构框图。
【具体实施方式】
[0017]本发明提供一种任务拆分方法及系统,为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0018]请参见图1,图1是本发明所述任务拆分方法较佳实施例的流程图。如图1所示,其包括以下步骤:
步骤S100、当检测到作业进程时,根据预设的作业模板将作业进程拆分为多个任务单元,配置每一任务单元的执行流程,并依次初始化任务实例。
[0019]本发明的实施例中,当智能终端中检测到作业进程时,则根据所述作业模板将作业进程拆分为多个任务单元。具体的,可根据任务执行流程的关键词将作业拆分,例如“备份数据”任务可以拆分成“导出文件”+ “压缩文件”两个任务单元的组合,“装载数据文件”任务可拆分为“下载文件”+ “解压文件”+ “装载数据”三个任务单元的组合。当将作业进程拆分为多个任务单元后,则配置每一任务单元的执行流程,并依次初始化任务实例。
[0020]步骤S200、判断任务实例的数量级别是否超出预先设定的任务数量阈值,当超出时则将任务实例拆分为指定数量的子任务实例,当未超出时则不拆分。
[0021]当将作业拆分为任务实例后,若仍存在数量级别较大、执行耗时的任务实例,则继续对任务实例进行拆分,拆分成若干个相同的数据量级的子任务实例。这样,将数量级别较大的任务实例继续拆分后,有效的降低了该任务实例执行所需时间,进而减少了作业总耗时。
[0022]步骤S300、将所述任务实例或所述子任务实例放入任务池中执行,直至执行完毕。
[0023]由于已将作业已拆分为多个任务实例,而且还进一步的将任务实例拆分为子任务实例,这样能充分利用线程池中的每一线程来执行任务,避免了大量进程被闲置的问题。
[0024]进一步的,所述步骤SlOO具体包括:
步骤S101、当检测到作业进程时,根据预设的作业模板将作业进程拆分为多个
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1