專利名稱:一種任務(wù)樹的優(yōu)化方法和裝置的制作方法
技術(shù)領(lǐng)域:
本申請涉及調(diào)度技術(shù)領(lǐng)域,特別是涉及一種任務(wù)樹的優(yōu)化方法和裝置。
背景技術(shù):
目前,隨著社會的發(fā)展,調(diào)度在生產(chǎn)、電力、交通指揮、計算機作業(yè)控制等領(lǐng)域中得到了廣泛應(yīng)用。例如,數(shù)據(jù)倉庫是決策支持系統(tǒng)(dss, decision support system)和聯(lián)機分析應(yīng)用數(shù)據(jù)源的結(jié)構(gòu)化數(shù)據(jù)環(huán)境,基于數(shù)據(jù)倉庫的調(diào)度系統(tǒng)會用任務(wù)描述數(shù)據(jù)倉庫的一個業(yè)務(wù)處理,其還用到如下定義和描述任務(wù)依賴關(guān)系描述任務(wù)和任務(wù)之間的關(guān)系,一個任務(wù)必須依賴另一個任務(wù)執(zhí)行·成功后才能開始執(zhí)行;父任務(wù)任務(wù)依賴關(guān)系中處于被依賴位置的任務(wù),除了根任務(wù)以外,任何任務(wù)都有至少一個父任務(wù);子任務(wù)相對于父任務(wù)而言,任務(wù)依賴關(guān)系中處于依賴位置的任務(wù);任務(wù)樹形象的描述任務(wù)和任務(wù)之間的所有依賴關(guān)系;結(jié)點形象的描述任務(wù)樹中的任務(wù),一個結(jié)點表示一個任務(wù)。每一個任務(wù)依賴關(guān)系的存在,意味著子任務(wù)必須依賴父任務(wù)的輸出,也即,只有父任務(wù)全部執(zhí)行成功,子任務(wù)才能開始執(zhí)行。隨著數(shù)據(jù)倉庫中業(yè)務(wù)的增長和任務(wù)的漸增,依賴關(guān)系也越來越復(fù)雜。一旦依賴關(guān)系確立,就不能隨便刪除,除非可以保證即使不存在這個依賴關(guān)系,子任務(wù)開始執(zhí)行時父任務(wù)一定已經(jīng)執(zhí)行成功,這樣的依賴關(guān)系就稱之為冗余任務(wù)依賴。由于用戶在確定任務(wù)依賴關(guān)系時,通常從單個任務(wù)的角度出發(fā),當(dāng)從全局的角度考慮時,很多任務(wù)依賴關(guān)系是冗余不必要的,因此不可避免存在冗余任務(wù)依賴。參照圖1,示出了已有技術(shù)一種存在冗余任務(wù)依賴的任務(wù)樹的示例,用戶在確定任務(wù)4依賴任務(wù)3和任務(wù)I時,并不知道任務(wù)3也間接依賴于任務(wù)1,顯然任務(wù)4開始執(zhí)行時任務(wù)I必然已經(jīng)執(zhí)行成功,因此任務(wù)4和任務(wù)I之間的依賴是冗余不必要的。參照圖2,示出了刪除圖I中冗余任務(wù)依賴后的任務(wù)樹,可以看出,任務(wù)依賴關(guān)系變得更加清楚明晰,且調(diào)度系統(tǒng)在判斷任務(wù)4是否可以執(zhí)行時,可以減少對任務(wù)I狀態(tài)的查看從而提高效率。隨著任務(wù)數(shù)量規(guī)模越來越大,冗余依賴關(guān)系的存在將使得任務(wù)依賴變得更加錯綜復(fù)雜。如果能夠檢測并刪除所有冗余的任務(wù)依賴關(guān)系,不僅可以使任務(wù)依賴結(jié)構(gòu)變得清楚明晰,而且可以提聞?wù){(diào)度系統(tǒng)的效率。對于冗余任務(wù)依賴,已有技術(shù)要么不處理,要么只能簡單人工識別。但是,在不處理冗余任務(wù)依賴時,隨著任務(wù)規(guī)模的擴大,比如任務(wù)數(shù)達(dá)到上萬級時,用戶無法查看清楚的任務(wù)依賴結(jié)構(gòu)。同時每多出一條任務(wù)依賴關(guān)系,調(diào)度系統(tǒng)將增加一次任務(wù)狀態(tài)的判斷,降低調(diào)度效率;而簡單的人工識別不僅浪費大量的人力,而且無法識別任務(wù)樹中所有的冗余任務(wù)依賴,也即,存在識別效率和準(zhǔn)確率低下的缺陷。
總之,需要本領(lǐng)域技術(shù)人員迫切解決的一個技術(shù)問題就是如何能夠快速、高效地檢測冗余任務(wù)依賴。
發(fā)明內(nèi)容
本申請所要解決的技術(shù)問題是提供一種任務(wù)樹的優(yōu)化方法和裝置,能夠快速、高效地檢測冗余任務(wù)依賴。為了解決上述問題,本申請公開了一種任務(wù)樹的優(yōu)化方法,包括接收針對任務(wù)樹的優(yōu)化命令;檢測所述任務(wù)樹中兩個任務(wù)結(jié)點之間的連接,如果二者之間的連接既包括長度為I的路徑,又包括長度大于I的路徑,則將二者之間的長度為I的路徑確定為冗余任務(wù)依賴; 在所述任務(wù)樹中刪除檢測出的冗余任務(wù)依賴。優(yōu)選的,所述檢測任務(wù)樹中兩個任務(wù)結(jié)點之間的連接的步驟,包括獲取所述任務(wù)樹中具有兩個或兩個以上直接父親的子任務(wù)結(jié)點,其中,該子任務(wù)結(jié)點到直接父親的路徑長度等于I;從該子任務(wù)結(jié)點開始,在所述任務(wù)樹中遍歷相應(yīng)的間接父任務(wù)結(jié)點,其中,該子任務(wù)結(jié)點到間接父任務(wù)結(jié)點的路徑長度大于I ;如果所述任務(wù)樹中存在某一間接父任務(wù)結(jié)點到該子任務(wù)結(jié)點的長度為I的路徑,則將這一間接父任務(wù)結(jié)點到該子任務(wù)結(jié)點的長度為I的路徑確定為冗余任務(wù)依賴。優(yōu)選的,采用數(shù)據(jù)庫表存儲所述任務(wù)樹的任務(wù)依賴關(guān)系,所述數(shù)據(jù)庫表的字段包括父任務(wù)標(biāo)識和子任務(wù)標(biāo)識。優(yōu)選的,所述數(shù)據(jù)庫表的結(jié)構(gòu)為關(guān)系數(shù)據(jù)結(jié)構(gòu)。優(yōu)選的,所述檢測任務(wù)樹中兩個任務(wù)結(jié)點之間的連接的步驟,包括基于結(jié)構(gòu)化查詢進(jìn)行任務(wù)樹中兩個任務(wù)結(jié)點之間的連接的檢測,所述結(jié)構(gòu)化查詢以記錄集合作為操作對象,結(jié)構(gòu)化查詢語句接受集合作為輸入,返回集合作為輸出;將該輸出確定為冗余任務(wù)依賴。另一方面,本申請還公開了一種任務(wù)樹的優(yōu)化裝置,包括 接口模塊,用于接收針對任務(wù)樹的優(yōu)化命令;檢測模塊,用于檢測所述任務(wù)樹中兩個任務(wù)結(jié)點之間的連接,如果二者之間的連接既包括長度為I的路徑,又包括長度大于I的路徑,則將二者之間的長度為I的路徑確定為冗余任務(wù)依賴;刪除模塊,用于在所述任務(wù)樹中刪除檢測出的冗余任務(wù)依賴。優(yōu)選的,所述檢測模塊,包括獲取單元,用于獲取所述任務(wù)樹中具有兩個或兩個以上直接父親的子任務(wù)結(jié)點,其中,該子任務(wù)結(jié)點到直接父親的路徑長度等于I ;遍歷單元,用于從該子任務(wù)結(jié)點開始,在所述任務(wù)樹中遍歷相應(yīng)的間接父任務(wù)結(jié)點,其中,該子任務(wù)結(jié)點到間接父任務(wù)結(jié)點的路徑長度大于I ;判斷單元,用于判斷所述任務(wù)樹中是否存在某一間接父任務(wù)結(jié)點到該子任務(wù)結(jié)點的長度為I的路徑,若是,則將這一間接父任務(wù)結(jié)點到該子任務(wù)結(jié)點的長度為I的路徑確定為冗余任務(wù)依賴。優(yōu)選的,所述裝置還包括存儲模塊,用于采用數(shù)據(jù)庫表存儲所述任務(wù)樹的任務(wù)依賴關(guān)系,所述數(shù)據(jù)庫表的字段包括父任務(wù)標(biāo)識和子任務(wù)標(biāo)識。優(yōu)選的,所述數(shù)據(jù)庫表的結(jié)構(gòu)為關(guān)系數(shù)據(jù)結(jié)構(gòu)。優(yōu)選的,所述檢測模塊,包括結(jié)構(gòu)化查詢單元,用于基于結(jié)構(gòu)化查詢進(jìn)行所述任務(wù)樹中兩個任務(wù)結(jié)點之間的連接的檢測,所述結(jié)構(gòu)化查詢以記錄集合作為操作對象,結(jié)構(gòu)化查詢語句接受集合作為輸入,返回集合作為輸出; 確定單元,用于將該輸出確定為冗余任務(wù)依賴。與已有技術(shù)相比,本申請具有以下優(yōu)點本申請檢測任務(wù)樹中兩個任務(wù)結(jié)點之間的連接,如果二者之間的連接既包括長度為I的路徑,又包括長度大于I的路徑,則將二者之間的長度為I的路徑確定為冗余任務(wù)依賴;由于上述檢測為自動檢測的過程,無需人工干預(yù),即可以檢測出任務(wù)樹中所有的冗余任務(wù)依賴,因此,相對于已有技術(shù)的人工識別,能夠提高檢測效率和準(zhǔn)確率;對于任務(wù)樹而言,刪除檢測出的冗余任務(wù)依賴,能夠使任務(wù)樹中的任務(wù)依賴關(guān)系變得更加清楚明晰,也即達(dá)到優(yōu)化任務(wù)樹的目的;對于調(diào)度系統(tǒng)而言,在判斷某一子任務(wù)是否可以執(zhí)行時,可以減少對相應(yīng)父任務(wù)狀態(tài)的查看,從而提高調(diào)度效率。其次,本申請的自動檢測可通過結(jié)構(gòu)化查詢來實現(xiàn),由于結(jié)構(gòu)化查詢語言結(jié)構(gòu)簡潔,功能強大,簡單易學(xué),這樣,檢測任務(wù)樹中所有的冗余任務(wù)依賴只需一次結(jié)構(gòu)化查詢來實現(xiàn),因而,能夠大大提高檢測效率和準(zhǔn)確率。
圖I是已有技術(shù)一種存在冗余任務(wù)依賴的任務(wù)樹的示例;圖2是刪除圖I中冗余任務(wù)依賴后的任務(wù)樹;圖3是本申請一種標(biāo)注有層次結(jié)構(gòu)的任務(wù)樹示例;圖4是本申請一種任務(wù)樹的應(yīng)用例;圖5是本申請另一種任務(wù)樹的應(yīng)用不例;圖6是本申請一種任務(wù)樹的優(yōu)化方法實施例的流程圖;圖7是本申請一種應(yīng)用于工序調(diào)度的任務(wù)樹不例;圖8是本申請再一種任務(wù)樹的應(yīng)用示例;圖9是本申請一種任務(wù)樹的優(yōu)化裝置實施例的結(jié)構(gòu)圖。
具體實施例方式為使本申請的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和具體實施方式
對本申請作進(jìn)一步詳細(xì)的說明。為使本領(lǐng)域技術(shù)人員更好地理解本申請,以下依據(jù)任務(wù)樹的結(jié)構(gòu),對任務(wù)樹中任務(wù)冗余依賴進(jìn)行分析。在一顆任務(wù)樹中,從根結(jié)點到某一任務(wù)結(jié)點可能會存在著多條路徑,且路徑長度不一,則可以選擇最長路徑的長度作為這一任務(wù)結(jié)點的層次,故對于任意任務(wù)結(jié)點來說它的層次就可被唯一地確定下來。參照圖3,示出了本申請一種標(biāo)注有層次結(jié)構(gòu)的任務(wù)樹示例,圖中假設(shè)根結(jié)點的層次為O,且把部分任務(wù)結(jié)點按層次排列出來。首先,根據(jù)任務(wù)依賴關(guān)系的定義,一個任務(wù)必須依賴另一個任務(wù)執(zhí)行成功后才能開始執(zhí)行。這樣,對于只有一個父親的任務(wù)結(jié)點,如果刪除了其與唯一父親的連接,則這個任務(wù)結(jié)點將不再有依賴,也即它可以立即執(zhí)行,而無須依賴另一個任務(wù)結(jié)點的執(zhí)行成功,這就違背了任務(wù)依賴關(guān)系的定義。因此,對于只有一個父親的任務(wù)結(jié)點,其連接是不能刪除的,故不屬于冗余任務(wù)依賴。其次,根據(jù)層次的定義到根結(jié)點的最長路徑數(shù)作為該任務(wù)結(jié)點的層次。這樣,對于相鄰的兩個任務(wù)結(jié)點而言,二者之間的連接僅包括一個唯一的、長度為I的路徑,如果刪除二者之間的連接,則相應(yīng)的子任務(wù)結(jié)點和父任務(wù)結(jié)點就不再有聯(lián)系,也就肯定不能保證子任務(wù)結(jié)點執(zhí)行時相應(yīng)的父任務(wù)結(jié)點已經(jīng)執(zhí)行成功,從而違背了任務(wù)依賴關(guān)系的定義。因此,對于相鄰兩層的任務(wù)結(jié)點,二者之間的連接是不能刪除的,故不屬于冗余任務(wù)依賴。 綜上,冗余依賴只存在于多余一個父親的任務(wù)結(jié)點且非相鄰層次之間。不失一般性,假設(shè)處于第η層的子任務(wù)結(jié)點A有兩個或以上的父親結(jié)點,則必然能在第n-Ι層找到一個父親結(jié)點B (否則A結(jié)點處于第n-Ι層),該父親結(jié)點一定也能在第η-2層找到相應(yīng)的父親結(jié)點,依次上溯,直到在某一層發(fā)現(xiàn)另外一條到子任務(wù)結(jié)點A的路徑,不妨設(shè)在第m(m
<n-1)層,這時有且僅有兩種情況I)參照圖4,在本申請一種任務(wù)樹的應(yīng)用示例中,到子任務(wù)結(jié)點A的兩條路徑的起始結(jié)點相同,都是父任務(wù)結(jié)點C,因為父任務(wù)結(jié)點B的存在,這時刪除C- > A的路徑長度為I的連接,顯然可以保證子任務(wù)結(jié)點A執(zhí)行時父任務(wù)結(jié)點C 一定已經(jīng)執(zhí)行成功,因此C — A的路徑長度為I的連接為冗余任務(wù)依賴;2)參照圖5,在本申請另一種任務(wù)樹的應(yīng)用示例中,到子任務(wù)結(jié)點A的兩條路徑的起始結(jié)點不同,分別為父任務(wù)結(jié)點C和D。依據(jù)冗余任務(wù)依賴的定義,子任務(wù)開始執(zhí)行時父任務(wù)一定已經(jīng)執(zhí)行成功;這樣,如果子任務(wù)結(jié)點A想開始執(zhí)行,必須判斷它的所有父任務(wù),如果沒有D — A的連接,那么只會判斷父任務(wù)結(jié)點B是否執(zhí)行成功,父任務(wù)結(jié)點B在開始執(zhí)行時只會判斷它的父任務(wù)C,C和D處于同一層,肯定沒有任何聯(lián)系;這樣A在開始執(zhí)行時都不會直接或間接檢測D的狀態(tài),因此,并不能保證子任務(wù)結(jié)點A開始執(zhí)行時父任務(wù)結(jié)點D —定已經(jīng)執(zhí)行成功;于是,此時并不能刪除D- > A的連接,D-A的路徑長度為I的連接不是冗余任務(wù)依賴。經(jīng)過上述分析,可以得知,如果兩個任務(wù)結(jié)點之間的連接既包括長度為I的路徑又包括長度大于I的路徑,則該長度為I的路徑為冗余任務(wù)依賴;如果一路徑為冗余任務(wù)依賴,則該路徑的長度為1,且該路徑所涉及兩個任務(wù)結(jié)點之間的連接既包括該路徑又包括長度大于I的路徑。兩個任務(wù)結(jié)點之間的連接既包括長度為I的路徑又包括長度大于I的路徑,是該長度為I的路徑為冗余任務(wù)依賴的充分必要條件。本申請發(fā)明人注意到了這一點,因此創(chuàng)造性地提出了本申請的發(fā)明構(gòu)思之一,也即,檢測任務(wù)樹中兩個任務(wù)結(jié)點之間的連接,如果二者之間的連接既包括長度為I的路徑,又包括長度大于I的路徑,則將二者之間的長度為I的路徑確定為冗余任務(wù)依賴。由于上述檢測為自動檢測的過程,無需人工干預(yù),即可以檢測出任務(wù)樹中所有的冗余任務(wù)依賴,因此,相對于已有技術(shù)的人工識別,能夠大大提高檢測效率和準(zhǔn)確率。參照圖6,示出了本申請一種任務(wù)樹的優(yōu)化方法實施例的流程圖,具體可以包括步驟601、接收針對任務(wù)樹的優(yōu)化命令;步驟602、檢測所述任務(wù)樹中兩個任務(wù)結(jié)點之間的連接,如果二者之間的連接既包括長度為I的路徑,又包括長度大于I的路徑,則將二者之間的長度為I的路徑確定為冗余任務(wù)依賴;步驟603、在所述任務(wù)樹中刪除檢測出的冗余任務(wù)依賴。本申請可以應(yīng)用于生產(chǎn)、電力、交通指揮、計算機作業(yè)控制等領(lǐng)域,這些領(lǐng)域中的工作內(nèi)容可用任務(wù)來描述,且任務(wù)樹中任務(wù)之間具有依賴關(guān)系,調(diào)度系統(tǒng)在判斷某一子任務(wù)是否可以執(zhí)行時,需要查看相應(yīng)父任務(wù)的狀態(tài)。但是,冗余任務(wù)依賴的存在,會使得調(diào)度系統(tǒng)無法查看清楚的任務(wù)依賴結(jié)構(gòu);同時每多出一條任務(wù)依賴關(guān)系,調(diào)度系統(tǒng)將增加一次 任務(wù)狀態(tài)的判斷,降低調(diào)度效率。本申請的主要目的是優(yōu)化任務(wù)樹,具體而言,檢測并刪除任務(wù)樹中所有的冗余任務(wù)依賴,以使得任務(wù)樹中的任務(wù)依賴關(guān)系變得更加清楚明晰;對于調(diào)度系統(tǒng)而言,在判斷某一子任務(wù)是否可以執(zhí)行時,可以減少對相應(yīng)父任務(wù)狀態(tài)的查看,從而提高調(diào)度效率。參照表1,示出了本申請一種工序調(diào)度的示例,其中,工序以工作為單位,具有對應(yīng)的工作內(nèi)容、緊前工作和工時參數(shù)。表I
π作工作內(nèi)容緊前工作~Vtm
~市場調(diào)查I4
~資金籌備I10
C需求分析A3
~產(chǎn)品設(shè)計A6
~產(chǎn)品研制D8
~制定成本計劃CTe2
~~G制定生產(chǎn)計劃F3
H籌備設(shè)備B,G2
~籌備原材料bTg8
J安裝設(shè)備H5
~調(diào)集人員G2
~準(zhǔn)備開工投產(chǎn)I. J’KI
如果用任務(wù)來描述表I中的工作,可得到圖7所示的任務(wù)樹,從而可以應(yīng)用本申請來自動檢測并刪除該任務(wù)樹中所有的冗余任務(wù)依賴,以優(yōu)化該任務(wù)樹,從而能夠提高工序的調(diào)度效率。在實際中,可提供給一個接口,由用戶通過該接口觸發(fā)針對任務(wù)樹的優(yōu)化命令;其中,該接口功能可以集成在某一按鈕或者菜單中的某一命令中,本申請對優(yōu)化命令的觸發(fā)方式不加以限制。在具體實現(xiàn)中,可使用各種技術(shù)手段進(jìn)行任務(wù)樹中兩個任務(wù)結(jié)點之間的連接的檢測。在本申請的一種優(yōu)選實施例中,所述檢測任務(wù)樹中兩個任務(wù)結(jié)點之間的連接的步驟,具體可以包括子步驟Al、獲取任務(wù)樹中具有兩個或兩個以上直接父親的子任務(wù)結(jié)點,其中,該子任務(wù)結(jié)點到直接父親的路徑長度等于I; 子步驟A2、從該子任務(wù)結(jié)點開始,在所述任務(wù)樹中遍歷相應(yīng)的間接父任務(wù)結(jié)點,其中,該子任務(wù)結(jié)點到間接父任務(wù)結(jié)點的路徑長度大于I ;子步驟A3、如果所述任務(wù)樹中存在某一間接父任務(wù)結(jié)點到該子任務(wù)結(jié)點的長度為I的路徑,則將這一間接父任務(wù)結(jié)點到該子任務(wù)結(jié)點的長度為I的路徑確定為冗余任務(wù)依賴。本優(yōu)選實施例提出直接父親和間接父任務(wù)結(jié)點的概念,其中,直接父親為與子任務(wù)結(jié)點相鄰的直接父任務(wù)結(jié)點,也即,該子任務(wù)結(jié)點到直接父親的路徑長度等于I ;而間接父任務(wù)結(jié)點則是除直接父任務(wù)結(jié)點外的父任務(wù)結(jié)點,也即,該子任務(wù)結(jié)點到間接父任務(wù)結(jié)點的路徑長度大于I。為檢測出滿足上述充分必要條件的路徑,本優(yōu)選實施例首先通過“具有兩個或兩個以上直接父親”的條件尋找子任務(wù)結(jié)點,然后在所述任務(wù)樹中遍歷與該子任務(wù)結(jié)點相應(yīng)的間接父任務(wù)結(jié)點,每得到一個間接父任務(wù)結(jié)點,則判斷任務(wù)樹中是否存在這個間接父任務(wù)結(jié)點到該子任務(wù)結(jié)點的長度為I的路徑,若是,則認(rèn)為該路徑滿足了充分必要條件,于是,將這一間接父任務(wù)結(jié)點到該子任務(wù)結(jié)點的長度為I的路徑確定為冗余任務(wù)依賴。在本發(fā)明實施例中,優(yōu)選的是,可采用數(shù)據(jù)倉庫作為任務(wù)樹的結(jié)構(gòu)化數(shù)據(jù)環(huán)境。進(jìn)一步,可采用數(shù)據(jù)庫表存儲所述任務(wù)樹的任務(wù)依賴關(guān)系,所述數(shù)據(jù)庫表的字段可以進(jìn)一步包括父任務(wù)標(biāo)識和子任務(wù)標(biāo)識。例如,參照圖8所示的任務(wù)樹示例,可采用表2所示的數(shù)據(jù)庫表對其進(jìn)行存儲,其中,該數(shù)據(jù)庫表的名稱為etl_task_tree,該數(shù)據(jù)庫表的字段可以包括parent_task_id和son_task_id,該數(shù)據(jù)庫表的一行則表示任務(wù)樹中一條任務(wù)依賴關(guān)系的記錄。表 權(quán)利要求
1.一種任務(wù)樹的優(yōu)化方法,其特征在于,包括 接收針對任務(wù)樹的優(yōu)化命令; 檢測所述任務(wù)樹中兩個任務(wù)結(jié)點之間的連接,如果二者之間的連接既包括長度為I的路徑,又包括長度大于I的路徑,則將二者之間的長度為I的路徑確定為冗余任務(wù)依賴; 在所述任務(wù)樹中刪除檢測出的冗余任務(wù)依賴。
2.如權(quán)利要求I所述的方法,其特征在于,所述檢測任務(wù)樹中兩個任務(wù)結(jié)點之間的連接的步驟,包括 獲取所述任務(wù)樹中具有兩個或兩個以上直接父親的子任務(wù)結(jié)點,其中,該子任務(wù)結(jié)點到直接父親的路徑長度等于I ; 從該子任務(wù)結(jié)點開始,在所述任務(wù)樹中遍歷相應(yīng)的間接父任務(wù)結(jié)點,其中,該子任務(wù)結(jié)點到間接父任務(wù)結(jié)點的路徑長度大于I ; 如果所述任務(wù)樹中存在某一間接父任務(wù)結(jié)點到該子任務(wù)結(jié)點的長度為I的路徑,則將這一間接父任務(wù)結(jié)點到該子任務(wù)結(jié)點的長度為I的路徑確定為冗余任務(wù)依賴。
3.如權(quán)利要求I或2所述的方法,其特征在于,采用數(shù)據(jù)庫表存儲所述任務(wù)樹的任務(wù)依賴關(guān)系,所述數(shù)據(jù)庫表的字段包括父任務(wù)標(biāo)識和子任務(wù)標(biāo)識。
4.如權(quán)利要求3所述的方法,其特征在于,所述數(shù)據(jù)庫表的結(jié)構(gòu)為關(guān)系數(shù)據(jù)結(jié)構(gòu)。
5.如權(quán)利要求4所述的方法,其特征在于,所述檢測任務(wù)樹中兩個任務(wù)結(jié)點之間的連接的步驟,包括 基于結(jié)構(gòu)化查詢進(jìn)行任務(wù)樹中兩個任務(wù)結(jié)點之間的連接的檢測,所述結(jié)構(gòu)化查詢以記錄集合作為操作對象,結(jié)構(gòu)化查詢語句接受集合作為輸入,返回集合作為輸出; 將該輸出確定為冗余任務(wù)依賴。
6.一種任務(wù)樹的優(yōu)化裝置,其特征在于,包括 接口模塊,用于接收針對任務(wù)樹的優(yōu)化命令; 檢測模塊,用于檢測所述任務(wù)樹中兩個任務(wù)結(jié)點之間的連接,如果二者之間的連接既包括長度為I的路徑,又包括長度大于I的路徑,則將二者之間的長度為I的路徑確定為冗余任務(wù)依賴; 刪除模塊,用于在所述任務(wù)樹中刪除檢測出的冗余任務(wù)依賴。
7.如權(quán)利要求6所述的裝置,其特征在于,所述檢測模塊,包括 獲取單元,用于獲取所述任務(wù)樹中具有兩個或兩個以上直接父親的子任務(wù)結(jié)點,其中,該子任務(wù)結(jié)點到直接父親的路徑長度等于I ; 遍歷單元,用于從該子任務(wù)結(jié)點開始,在所述任務(wù)樹中遍歷相應(yīng)的間接父任務(wù)結(jié)點,其中,該子任務(wù)結(jié)點到間接父任務(wù)結(jié)點的路徑長度大于I; 判斷單元,用于判斷所述任務(wù)樹中是否存在某一間接父任務(wù)結(jié)點到該子任務(wù)結(jié)點的長度為I的路徑,若是,則將這一間接父任務(wù)結(jié)點到該子任務(wù)結(jié)點的長度為I的路徑確定為冗余任務(wù)依賴。
8.如權(quán)利要求6或7所述的裝置,其特征在于,還包括 存儲模塊,用于采用數(shù)據(jù)庫表存儲所述任務(wù)樹的任務(wù)依賴關(guān)系,所述數(shù)據(jù)庫表的字段包括父任務(wù)標(biāo)識和子任務(wù)標(biāo)識。
9.如權(quán)利要求8所述的裝置,其特征在于,所述數(shù)據(jù)庫表的結(jié)構(gòu)為關(guān)系數(shù)據(jù)結(jié)構(gòu)。
10.如權(quán)利要求9所述的裝置,其特征在于,所述檢測模塊,包括 結(jié)構(gòu)化查詢單元,用于基于結(jié)構(gòu)化查詢進(jìn)行所述任務(wù)樹中兩個任務(wù)結(jié)點之間的連接的檢測,所述結(jié)構(gòu)化查詢以記錄集合作為操作對象,結(jié)構(gòu)化查詢語句接受集合作為輸入,返回集合作為輸出; 確定單元,用于將該輸出確定為冗余任務(wù)依賴。
全文摘要
本發(fā)明提供了一種任務(wù)樹的優(yōu)化方法和裝置,其中的方法具體包括接收針對任務(wù)樹的優(yōu)化命令;檢測所述任務(wù)樹中兩個任務(wù)結(jié)點之間的連接,如果二者之間的連接既包括長度為1的路徑,又包括長度大于1的路徑,則將二者之間的長度為1的路徑確定為冗余任務(wù)依賴;在所述任務(wù)樹中刪除檢測出的冗余任務(wù)依賴。本發(fā)明能夠快速、高效地檢測冗余任務(wù)依賴。
文檔編號G06F9/46GK102880500SQ20111019562
公開日2013年1月16日 申請日期2011年7月13日 優(yōu)先權(quán)日2011年7月13日
發(fā)明者陳旭 申請人:阿里巴巴集團(tuán)控股有限公司