一種任務(wù)拆分方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及任務(wù)拆分技術(shù)領(lǐng)域,尤其涉及的是一種任務(wù)拆分方法及系統(tǒng)。
【背景技術(shù)】
[0002]一個(gè)作業(yè)由多個(gè)任務(wù)組成,普通系統(tǒng)通常是按照在一條線(xiàn)程中順序執(zhí)行作業(yè)中的任務(wù),作業(yè)耗時(shí)等于該作業(yè)中所有任務(wù)耗時(shí)的總和。在碰到作業(yè)中有大數(shù)據(jù)量大且耗時(shí)長(zhǎng)的任務(wù)時(shí),使用運(yùn)籌的思想改進(jìn)系統(tǒng),在多條線(xiàn)程并行執(zhí)行多個(gè)任務(wù),能有效的減少作業(yè)耗時(shí)。在這種情況下,耗時(shí)最長(zhǎng)的任務(wù)決定了作業(yè)的最終耗時(shí)。
[0003]如果作業(yè)中一個(gè)任務(wù)的耗時(shí)超過(guò)作業(yè)中其他任務(wù)耗時(shí)之和,就會(huì)出現(xiàn)一條線(xiàn)程忙碌,其余線(xiàn)程被閑置的情況。此時(shí),減少作業(yè)耗時(shí)的效果就打了折扣。
[0004]因此,現(xiàn)有技術(shù)還有待于改進(jìn)和發(fā)展。
【發(fā)明內(nèi)容】
[0005]鑒于上述現(xiàn)有技術(shù)的不足,本發(fā)明的目的在于提供一種任務(wù)拆分方法及系統(tǒng),旨在解決現(xiàn)有技術(shù)中當(dāng)作業(yè)中有一個(gè)任務(wù)的耗時(shí)超過(guò)作業(yè)中其他任務(wù)耗時(shí)之和,出現(xiàn)一條線(xiàn)程忙碌,其余線(xiàn)程被閑置,從而導(dǎo)致作業(yè)耗時(shí)的缺陷。
[0006]本發(fā)明的技術(shù)方案如下:
一種任務(wù)拆分方法,其中,所述方法包括以下步驟:
A、當(dāng)檢測(cè)到作業(yè)進(jìn)程時(shí),根據(jù)預(yù)設(shè)的作業(yè)模板將作業(yè)進(jìn)程拆分為多個(gè)任務(wù)單元,配置每一任務(wù)單元的執(zhí)行流程,并依次初始化任務(wù)實(shí)例;
B、判斷任務(wù)實(shí)例的數(shù)量級(jí)別是否超出預(yù)先設(shè)定的任務(wù)數(shù)量閾值,當(dāng)超出時(shí)則將任務(wù)實(shí)例拆分為指定數(shù)量的子任務(wù)實(shí)例,當(dāng)未超出時(shí)則不拆分;
C、將所述任務(wù)實(shí)例或所述子任務(wù)實(shí)例放入任務(wù)池中執(zhí)行,直至執(zhí)行完畢。
[0007]所述任務(wù)拆分方法,其中,所述步驟A具體包括:
Al、當(dāng)檢測(cè)到作業(yè)進(jìn)程時(shí),根據(jù)預(yù)設(shè)的作業(yè)模板將作業(yè)進(jìn)程拆分為多個(gè)任務(wù)單元;
A2、配置作業(yè)模板,并獲取作業(yè)中任務(wù)單元的執(zhí)行流程;
A3、獲取已有作業(yè)模板,并判斷該作業(yè)模板是否有效,當(dāng)有效時(shí)則初始化對(duì)應(yīng)的作業(yè)實(shí)例;
A4、根據(jù)作業(yè)模板中任務(wù)單元的執(zhí)行流程,依次初始化任務(wù)實(shí)例。
[0008]所述任務(wù)拆分方法,其中,所述作業(yè)實(shí)例包括作業(yè)的有限期、控制類(lèi)型、作業(yè)狀態(tài)及執(zhí)行周期。
[0009]所述任務(wù)拆分方法,其中,所述步驟A3中按指定周期定時(shí)獲取已有作業(yè)模板,或通過(guò)socket通信實(shí)時(shí)觸發(fā)獲取已有作業(yè)模板。
[0010]—種任務(wù)拆分系統(tǒng),其中,包括:
拆分模塊,用于當(dāng)檢測(cè)到作業(yè)進(jìn)程時(shí),根據(jù)預(yù)設(shè)的作業(yè)模板將作業(yè)進(jìn)程拆分為多個(gè)任務(wù)單元,配置每一任務(wù)單元的執(zhí)行流程,并依次初始化任務(wù)實(shí)例; 判斷模塊,用于判斷任務(wù)實(shí)例的數(shù)量級(jí)別是否超出預(yù)先設(shè)定的任務(wù)數(shù)量閾值,當(dāng)超出時(shí)則將任務(wù)實(shí)例拆分為指定數(shù)量的子任務(wù)實(shí)例,當(dāng)未超出時(shí)則不拆分;
任務(wù)執(zhí)行模塊,用于將所述任務(wù)實(shí)例或所述子任務(wù)實(shí)例放入任務(wù)池中執(zhí)行,直至執(zhí)行完畢。
[0011]所述任務(wù)拆分系統(tǒng),其中,所述拆分模塊具體包括:
任務(wù)拆分單元,用于當(dāng)檢測(cè)到作業(yè)進(jìn)程時(shí),根據(jù)預(yù)設(shè)的作業(yè)模板將作業(yè)進(jìn)程拆分為多個(gè)任務(wù)單元;
配置單元,用于配置作業(yè)模板,并獲取作業(yè)中任務(wù)單元的執(zhí)行流程;
作業(yè)初始化單元,用于獲取已有作業(yè)模板,并判斷該作業(yè)模板是否有效,當(dāng)有效時(shí)則初始化對(duì)應(yīng)的作業(yè)實(shí)例;
任務(wù)初始化單元,用于根據(jù)作業(yè)模板中任務(wù)單元的執(zhí)行流程,依次初始化任務(wù)實(shí)例。
[0012]所述任務(wù)拆分系統(tǒng),其中,所述作業(yè)實(shí)例包括作業(yè)的有限期、控制類(lèi)型、作業(yè)狀態(tài)及執(zhí)行周期。
[0013]所述任務(wù)拆分系統(tǒng),其中,所述作業(yè)初始化單元中按指定周期定時(shí)獲取已有作業(yè)模板,或通過(guò)socket通信實(shí)時(shí)觸發(fā)獲取已有作業(yè)模板。
[0014]本發(fā)明所述的一種任務(wù)拆分方法及系統(tǒng),方法包括:當(dāng)檢測(cè)到作業(yè)進(jìn)程時(shí),根據(jù)預(yù)設(shè)的作業(yè)模板將作業(yè)進(jìn)程拆分為多個(gè)任務(wù)單元,配置每一任務(wù)單元的執(zhí)行流程,并依次初始化任務(wù)實(shí)例;判斷任務(wù)實(shí)例的數(shù)量級(jí)別是否超出預(yù)先設(shè)定的任務(wù)數(shù)量閾值,當(dāng)超出時(shí)則將任務(wù)實(shí)例拆分為指定數(shù)量的子任務(wù)實(shí)例,當(dāng)未超出時(shí)則不拆分;將所述任務(wù)實(shí)例或所述子任務(wù)實(shí)例放入任務(wù)池中執(zhí)行,直至執(zhí)行完畢。本發(fā)明中將復(fù)雜的大任務(wù)處理,根據(jù)動(dòng)作分解為多個(gè)或關(guān)聯(lián)或獨(dú)立的子任務(wù),能有效的減少作業(yè)耗時(shí),并能夠適用于各種無(wú)規(guī)則大任務(wù)處理,可拓展性高。
【附圖說(shuō)明】
[0015]圖1為本發(fā)明所述任務(wù)拆分方法較佳實(shí)施例的流程圖。
[0016]圖2為本發(fā)明所述任務(wù)拆分系統(tǒng)較佳實(shí)施例的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0017]本發(fā)明提供一種任務(wù)拆分方法及系統(tǒng),為使本發(fā)明的目的、技術(shù)方案及效果更加清楚、明確,以下對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0018]請(qǐng)參見(jiàn)圖1,圖1是本發(fā)明所述任務(wù)拆分方法較佳實(shí)施例的流程圖。如圖1所示,其包括以下步驟:
步驟S100、當(dāng)檢測(cè)到作業(yè)進(jìn)程時(shí),根據(jù)預(yù)設(shè)的作業(yè)模板將作業(yè)進(jìn)程拆分為多個(gè)任務(wù)單元,配置每一任務(wù)單元的執(zhí)行流程,并依次初始化任務(wù)實(shí)例。
[0019]本發(fā)明的實(shí)施例中,當(dāng)智能終端中檢測(cè)到作業(yè)進(jìn)程時(shí),則根據(jù)所述作業(yè)模板將作業(yè)進(jìn)程拆分為多個(gè)任務(wù)單元。具體的,可根據(jù)任務(wù)執(zhí)行流程的關(guān)鍵詞將作業(yè)拆分,例如“備份數(shù)據(jù)”任務(wù)可以拆分成“導(dǎo)出文件”+ “壓縮文件”兩個(gè)任務(wù)單元的組合,“裝載數(shù)據(jù)文件”任務(wù)可拆分為“下載文件”+ “解壓文件”+ “裝載數(shù)據(jù)”三個(gè)任務(wù)單元的組合。當(dāng)將作業(yè)進(jìn)程拆分為多個(gè)任務(wù)單元后,則配置每一任務(wù)單元的執(zhí)行流程,并依次初始化任務(wù)實(shí)例。
[0020]步驟S200、判斷任務(wù)實(shí)例的數(shù)量級(jí)別是否超出預(yù)先設(shè)定的任務(wù)數(shù)量閾值,當(dāng)超出時(shí)則將任務(wù)實(shí)例拆分為指定數(shù)量的子任務(wù)實(shí)例,當(dāng)未超出時(shí)則不拆分。
[0021]當(dāng)將作業(yè)拆分為任務(wù)實(shí)例后,若仍存在數(shù)量級(jí)別較大、執(zhí)行耗時(shí)的任務(wù)實(shí)例,則繼續(xù)對(duì)任務(wù)實(shí)例進(jìn)行拆分,拆分成若干個(gè)相同的數(shù)據(jù)量級(jí)的子任務(wù)實(shí)例。這樣,將數(shù)量級(jí)別較大的任務(wù)實(shí)例繼續(xù)拆分后,有效的降低了該任務(wù)實(shí)例執(zhí)行所需時(shí)間,進(jìn)而減少了作業(yè)總耗時(shí)。
[0022]步驟S300、將所述任務(wù)實(shí)例或所述子任務(wù)實(shí)例放入任務(wù)池中執(zhí)行,直至執(zhí)行完畢。
[0023]由于已將作業(yè)已拆分為多個(gè)任務(wù)實(shí)例,而且還進(jìn)一步的將任務(wù)實(shí)例拆分為子任務(wù)實(shí)例,這樣能充分利用線(xiàn)程池中的每一線(xiàn)程來(lái)執(zhí)行任務(wù),避免了大量進(jìn)程被閑置的問(wèn)題。
[0024]進(jìn)一步的,所述步驟SlOO具體包括:
步驟S101、當(dāng)檢測(cè)到作業(yè)進(jìn)程時(shí),根據(jù)預(yù)設(shè)的作業(yè)模板將作業(yè)進(jìn)程拆分為多個(gè)