一種計(jì)算任務(wù)處理方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開(kāi)了一種計(jì)算任務(wù)處理方法和系統(tǒng),所述方法包括:工作模塊獲取待處理的計(jì)算任務(wù),工作模塊部署在云存儲(chǔ)系統(tǒng)中的存儲(chǔ)設(shè)備上的;工作模塊通過(guò)復(fù)用所在存儲(chǔ)設(shè)備上的計(jì)算資源,完成對(duì)計(jì)算任務(wù)的處理。應(yīng)用本發(fā)明所述方案,能夠降低對(duì)資源和成本的消耗等。
【專利說(shuō)明】
一種計(jì)算任務(wù)處理方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)應(yīng)用技術(shù),特別涉及一種計(jì)算任務(wù)處理方法和系統(tǒng)。
【【背景技術(shù)】】
[0002]云存儲(chǔ)系統(tǒng)上存儲(chǔ)了大量的用戶視頻、圖片等文件,隨著產(chǎn)品的不斷發(fā)展演進(jìn),需要提供大量的計(jì)算能力來(lái)對(duì)用戶的文件進(jìn)行處理,如視頻轉(zhuǎn)碼、文件解壓、圖片信息提取等。
[0003]現(xiàn)有技術(shù)中,通常采用搭建物理計(jì)算集群的方式來(lái)提供上述計(jì)算能力,以視頻轉(zhuǎn)碼為例,需要開(kāi)發(fā)一套視頻轉(zhuǎn)碼專用的框架,按照預(yù)期的視頻轉(zhuǎn)碼規(guī)模,建設(shè)數(shù)量在幾百到幾千的物理設(shè)備集群用于運(yùn)算,而這需要耗費(fèi)巨大的資源和成本。
【
【發(fā)明內(nèi)容】
】
[0004]本發(fā)明提供了一種計(jì)算任務(wù)處理方法和系統(tǒng),能夠降低對(duì)資源和成本的消耗等。
[0005]具體技術(shù)方案如下:
[0006]一種計(jì)算任務(wù)處理方法,包括:
[0007]工作模塊獲取待處理的計(jì)算任務(wù),所述工作模塊部署在云存儲(chǔ)系統(tǒng)中的存儲(chǔ)設(shè)備上的;
[0008]所述工作模塊通過(guò)復(fù)用所在存儲(chǔ)設(shè)備上的計(jì)算資源,完成對(duì)所述計(jì)算任務(wù)的處理。
[0009]根據(jù)本發(fā)明一優(yōu)選實(shí)施例,所述計(jì)算任務(wù)包括:離線任務(wù)、在線任務(wù)以及實(shí)時(shí)任務(wù)。
[0010]根據(jù)本發(fā)明一優(yōu)選實(shí)施例,所述工作模塊獲取待處理的計(jì)算任務(wù)包括:
[0011 ]所述工作模塊拉取離線任務(wù);
[0012]所述工作模塊接收發(fā)送來(lái)的在線任務(wù)或?qū)崟r(shí)任務(wù)。
[0013]根據(jù)本發(fā)明一優(yōu)選實(shí)施例,所述工作模塊拉取離線任務(wù)包括:
[0014]所述工作模塊在每次拉取離線任務(wù)之前,向調(diào)度模塊發(fā)送調(diào)度請(qǐng)求,并接收所述調(diào)度模塊返回的調(diào)度指令,從消息中間件中拉取所述調(diào)度指令中攜帶的離線業(yè)務(wù)標(biāo)識(shí)對(duì)應(yīng)的離線任務(wù),所述消息中間件中的離線任務(wù)為所述前端模塊接收到后發(fā)送到所述消息中間件中的。
[0015]根據(jù)本發(fā)明一優(yōu)選實(shí)施例,所述工作模塊接收發(fā)送來(lái)的在線任務(wù)或?qū)崟r(shí)任務(wù)包括:
[0016]所述工作模塊接收所述前端模塊針對(duì)接收到的在線任務(wù)或?qū)崟r(shí)任務(wù)向調(diào)度模塊發(fā)出調(diào)度請(qǐng)求后,根據(jù)所述調(diào)度模塊返回的調(diào)度指令中攜帶的工作模塊標(biāo)識(shí)發(fā)送來(lái)的在線任務(wù)或?qū)崟r(shí)任務(wù)。
[0017]根據(jù)本發(fā)明一優(yōu)選實(shí)施例,所述完成對(duì)所述計(jì)算任務(wù)的處理包括:
[0018]當(dāng)所述計(jì)算任務(wù)為離線任務(wù)或在線任務(wù)時(shí),所述工作模塊調(diào)起所述計(jì)算任務(wù)對(duì)應(yīng)的業(yè)務(wù)進(jìn)程,完成對(duì)所述計(jì)算任務(wù)的處理;
[0019]當(dāng)所述計(jì)算任務(wù)為實(shí)時(shí)任務(wù)時(shí),所述工作模塊使用自身線程,完成對(duì)所述計(jì)算任務(wù)的處理。
[0020]根據(jù)本發(fā)明一優(yōu)選實(shí)施例,該方法進(jìn)一步包括:
[0021]在處理所述計(jì)算任務(wù)之前,所述工作模塊將所述計(jì)算任務(wù)發(fā)送給代理模塊,以便所述代理模塊對(duì)所述計(jì)算任務(wù)進(jìn)行保存,且若在超過(guò)預(yù)定時(shí)長(zhǎng)之前接收到所述工作模塊發(fā)送來(lái)的任務(wù)完成通知,則刪除所述計(jì)算任務(wù),否則,轉(zhuǎn)由其它工作模塊對(duì)所述計(jì)算任務(wù)進(jìn)行處理。
[0022]一種計(jì)算任務(wù)處理系統(tǒng),包括:工作模塊;
[0023]所述工作模塊部署在云存儲(chǔ)系統(tǒng)中的存儲(chǔ)設(shè)備上,
[0024]所述工作模塊,用于獲取待處理的計(jì)算任務(wù),并通過(guò)復(fù)用所在存儲(chǔ)設(shè)備上的計(jì)算資源,完成對(duì)所述計(jì)算任務(wù)的處理。
[0025]根據(jù)本發(fā)明一優(yōu)選實(shí)施例,所述計(jì)算任務(wù)包括:離線任務(wù)、在線任務(wù)以及實(shí)時(shí)任務(wù)。
[0026]根據(jù)本發(fā)明一優(yōu)選實(shí)施例,所述工作模塊拉取離線任務(wù);
[0027]所述工作模塊接收發(fā)送來(lái)的在線任務(wù)或?qū)崟r(shí)任務(wù)。
[0028]根據(jù)本發(fā)明一優(yōu)選實(shí)施例,所述系統(tǒng)中進(jìn)一步包括:調(diào)度模塊和前端模塊;
[0029]所述工作模塊在每次拉取離線任務(wù)之前,向所述調(diào)度模塊發(fā)送調(diào)度請(qǐng)求,接收所述調(diào)度模塊返回的調(diào)度指令,從消息中間件中拉取所述調(diào)度指令中攜帶的離線業(yè)務(wù)標(biāo)識(shí)對(duì)應(yīng)的離線任務(wù);
[0030]所述調(diào)度模塊,用于當(dāng)接收到來(lái)自所述工作模塊的調(diào)度請(qǐng)求后,向所述工作模塊返回?cái)y帶有需要拉取的離線業(yè)務(wù)標(biāo)識(shí)的調(diào)度指令;
[0031 ]所述前端模塊,用于將接收到的離線任務(wù)發(fā)送到所述消息中間件中。
[0032]根據(jù)本發(fā)明一優(yōu)選實(shí)施例,所述前端模塊進(jìn)一步用于,當(dāng)接收到在線任務(wù)或?qū)崟r(shí)任務(wù)時(shí),向所述調(diào)度模塊發(fā)送調(diào)度請(qǐng)求,將所述在線任務(wù)或?qū)崟r(shí)任務(wù)發(fā)送給所述調(diào)度模塊返回的調(diào)度指令中攜帶的工作模塊標(biāo)識(shí)對(duì)應(yīng)的工作模塊;
[0033]所述調(diào)度模塊進(jìn)一步用于,當(dāng)接收到來(lái)自所述前端模塊的調(diào)度請(qǐng)求后,向所述前端模塊返回?cái)y帶有負(fù)責(zé)處理任務(wù)的工作模塊標(biāo)識(shí)的調(diào)度指令。
[0034]根據(jù)本發(fā)明一優(yōu)選實(shí)施例,當(dāng)所述計(jì)算任務(wù)為離線任務(wù)或在線任務(wù)時(shí),所述工作模塊調(diào)起所述計(jì)算任務(wù)對(duì)應(yīng)的業(yè)務(wù)進(jìn)程,完成對(duì)所述計(jì)算任務(wù)的處理;
[0035]當(dāng)所述計(jì)算任務(wù)為實(shí)時(shí)任務(wù)時(shí),所述工作模塊使用自身線程,完成對(duì)所述計(jì)算任務(wù)的處理。
[0036]根據(jù)本發(fā)明一優(yōu)選實(shí)施例,所述系統(tǒng)中進(jìn)一步包括:代理模塊;
[0037]所述工作模塊進(jìn)一步用于,在處理所述計(jì)算任務(wù)之前,將所述計(jì)算任務(wù)發(fā)送給所述代理模塊,并在任務(wù)處理完成后通知所述代理模塊;
[0038]所述代理模塊,用于對(duì)所述計(jì)算任務(wù)進(jìn)行保存,且若在超過(guò)預(yù)定時(shí)長(zhǎng)之前接收到所述工作模塊發(fā)送來(lái)的任務(wù)完成通知,則刪除所述計(jì)算任務(wù),否則,轉(zhuǎn)由其它工作模塊對(duì)所述計(jì)算任務(wù)進(jìn)行處理。
[0039]通過(guò)以上介紹可以看出,采用本發(fā)明所述方案,在存儲(chǔ)設(shè)備上部署工作模塊,工作模塊可通過(guò)復(fù)用存儲(chǔ)設(shè)備上閑置的計(jì)算資源,完成對(duì)計(jì)算任務(wù)的處理,從而以近乎零成本的方式獲取到了大量的計(jì)算能力,相比于現(xiàn)有技術(shù),無(wú)需再專門搭建物理計(jì)算集群,進(jìn)而極大地降低了對(duì)資源和成本的消耗,并提高了存儲(chǔ)設(shè)備的資源利用率。
【【附圖說(shuō)明】】
[0040]圖1為本發(fā)明計(jì)算任務(wù)處理方法實(shí)施例的流程圖。
[0041 ]圖2為本發(fā)明計(jì)算任務(wù)處理系統(tǒng)實(shí)施例的組成結(jié)構(gòu)示意圖。
【【具體實(shí)施方式】】
[0042]云存儲(chǔ)系統(tǒng)為了存儲(chǔ)用戶文件,擁有數(shù)量龐大的存儲(chǔ)設(shè)備集群,由于主要用于存儲(chǔ)文件,因此這些存儲(chǔ)設(shè)備的共同特點(diǎn)是磁盤占用比較高,但計(jì)算資源如中央處理單元(CPU,Central Processing Unit)等存在大量空閑,從而造成了計(jì)算資源的巨大浪費(fèi)。
[0043]為此,本發(fā)明中提出一種計(jì)算任務(wù)處理系統(tǒng),或稱為mammoth系統(tǒng),其中可包括:工作模塊(mammoth worker)、調(diào)度模塊(mammoth observer)和前端模塊(mommoth front)等,通過(guò)各模塊之間的相互配合,完成任務(wù)接入、任務(wù)調(diào)度和任務(wù)計(jì)算等各種處理。
[0044]其中,前端模塊主要負(fù)責(zé)任務(wù)接入,調(diào)度模塊主要負(fù)責(zé)任務(wù)調(diào)度,工作模塊主要負(fù)責(zé)任務(wù)處理(任務(wù)計(jì)算)。
[0045]工作模塊部署在云存儲(chǔ)系統(tǒng)中的存儲(chǔ)設(shè)備上,可利用存儲(chǔ)設(shè)備上閑置的計(jì)算資源來(lái)對(duì)計(jì)算任務(wù)進(jìn)行處理,從而無(wú)需再專門搭建物理計(jì)算集群,進(jìn)而極大地降低了對(duì)資源和成本的消耗,并提高了存儲(chǔ)設(shè)備的資源利用率。
[0046]為了使本發(fā)明的技術(shù)方案更加清楚、明白,以下參照附圖并舉實(shí)施例,對(duì)本發(fā)明所述方案作進(jìn)一步地詳細(xì)說(shuō)明。
[0047]實(shí)施例一
[0048]圖1為本發(fā)明計(jì)算任務(wù)處理方法實(shí)施例的流程圖,如圖1所示,包括以下具體實(shí)現(xiàn)方式。
[0049]在11中,工作模塊獲取待處理的計(jì)算任務(wù),工作模塊部署在云存儲(chǔ)系統(tǒng)中的存儲(chǔ)設(shè)備上的。
[0050]為了利用存儲(chǔ)設(shè)備上閑置的計(jì)算資源,可在存儲(chǔ)設(shè)備上部署工作模塊,每個(gè)存儲(chǔ)設(shè)備上只需部署一個(gè)工作模塊即可。
[0051]所述計(jì)算任務(wù)可包括:離線任務(wù)、在線任務(wù)和實(shí)時(shí)任務(wù)。
[0052]根據(jù)任務(wù)類型的不同,工作模塊獲取計(jì)算任務(wù)的方式也會(huì)不同,如下所示:
[0053]I)工作模塊拉取離線任務(wù)
[0054]工作模塊在每次拉取離線任務(wù)之前,向調(diào)度模塊發(fā)送調(diào)度請(qǐng)求,并接收調(diào)度模塊返回的調(diào)度指令,從消息中間件中拉取調(diào)度指令中攜帶的離線業(yè)務(wù)標(biāo)識(shí)對(duì)應(yīng)的離線任務(wù),消息中間件中的離線任務(wù)為前端模塊接收到后發(fā)送到消息中間件中的;
[0055]2)工作模塊接收發(fā)送來(lái)的在線任務(wù)或?qū)崟r(shí)任務(wù)
[0056]工作模塊接收前端模塊針對(duì)接收到的在線任務(wù)或?qū)崟r(shí)任務(wù)向調(diào)度模塊發(fā)出調(diào)度請(qǐng)求后,根據(jù)調(diào)度模塊返回的調(diào)度指令中攜帶的工作模塊標(biāo)識(shí)發(fā)送來(lái)的在線任務(wù)或?qū)崟r(shí)任務(wù)。
[0057]前端模塊負(fù)責(zé)任務(wù)接入,通過(guò)與用戶進(jìn)行交互,獲取用戶發(fā)布的各類型任務(wù)。調(diào)度模塊是mammoth系統(tǒng)中的調(diào)度組件,負(fù)責(zé)整個(gè)系統(tǒng)的任務(wù)調(diào)度。
[0058]前端模塊在接收到一個(gè)在線任務(wù)或?qū)崟r(shí)任務(wù)后,可向調(diào)度模塊發(fā)送調(diào)度請(qǐng)求,詢問(wèn)調(diào)度模塊負(fù)責(zé)處理該任務(wù)的是哪個(gè)工作模塊,調(diào)度模塊接收到來(lái)自前端模塊的調(diào)度請(qǐng)求后,會(huì)從眾多的工作模塊中選出一個(gè)負(fù)責(zé)處理該任務(wù),并將選出的工作模塊標(biāo)識(shí)攜帶在調(diào)度指令中返回給前端模塊,進(jìn)而由前端模塊將該任務(wù)發(fā)送給所選出的工作模塊進(jìn)行處理。
[0059]前端模塊可將接收到的離線任務(wù)發(fā)送到消息中間件中。每個(gè)工作模塊在每次拉取離線任務(wù)之前,都會(huì)向調(diào)度模塊發(fā)送調(diào)度請(qǐng)求,詢問(wèn)調(diào)度模塊本次需要拉取哪個(gè)離線業(yè)務(wù)的任務(wù),調(diào)度模塊接收到來(lái)自工作模塊的調(diào)度請(qǐng)求后,會(huì)按照調(diào)度規(guī)則,向工作模塊返回?cái)y帶有離線業(yè)務(wù)標(biāo)識(shí)的調(diào)度指令,通過(guò)這種方式來(lái)通知工作模塊去拉取哪個(gè)離線業(yè)務(wù)的任務(wù)。
[0060]調(diào)度模塊作為調(diào)度組件,需要同時(shí)滿足離線調(diào)度和在線調(diào)度的各種特性。在線調(diào)度的特性可包括:提供可用的工作模塊,保證各個(gè)工作模塊之間的負(fù)載均衡等。離線調(diào)度的特性可包括:控制各工作模塊拉取各個(gè)離線業(yè)務(wù)的任務(wù)數(shù)量和速度,保護(hù)工作模塊的安全和執(zhí)彳丁效率,防止過(guò)尚壓力等。
[0061]另外,每個(gè)工作模塊均可處理所有離線業(yè)務(wù)的任務(wù),根據(jù)調(diào)度模塊的調(diào)度,可以對(duì)多個(gè)離線業(yè)務(wù)進(jìn)行計(jì)算資源和時(shí)間的分配,即在計(jì)算資源有限的情況下在各個(gè)離線業(yè)務(wù)之間調(diào)配計(jì)算資源,并需要保證計(jì)算服務(wù)不會(huì)對(duì)工作模塊所在存儲(chǔ)設(shè)備上原有的存儲(chǔ)服務(wù)造成影響。
[0062]調(diào)度模塊具體如何進(jìn)行調(diào)度不作限制,可根據(jù)實(shí)際需要而定。
[0063]在12中,工作模塊通過(guò)復(fù)用所在存儲(chǔ)設(shè)備上的計(jì)算資源,完成對(duì)計(jì)算任務(wù)的處理。
[0064]本實(shí)施例中,計(jì)算任務(wù)可以消息的形式進(jìn)行傳遞,消息傳遞流程對(duì)業(yè)務(wù)透明,這可以大大簡(jiǎn)化業(yè)務(wù)開(kāi)發(fā)的復(fù)雜度和學(xué)習(xí)成本,借此可以實(shí)現(xiàn)快速的業(yè)務(wù)開(kāi)發(fā)和接入。
[0065]對(duì)于不同類型的計(jì)算任務(wù),可采用不同的傳遞和處理方式,如下所示:
[0066]I)離線任務(wù)
[0067]通過(guò)消息中間件傳遞消息;
[0068]調(diào)起離線任務(wù)對(duì)應(yīng)的業(yè)務(wù)進(jìn)程完成任務(wù)處理;
[0069]2)在線任務(wù)
[0070]通過(guò)遠(yuǎn)程過(guò)程調(diào)用協(xié)議(RPC,Remote Procedure Call Protocol)傳遞消息;
[0071 ]調(diào)起在線任務(wù)對(duì)應(yīng)的業(yè)務(wù)進(jìn)程完成任務(wù)處理;
[0072]3)實(shí)時(shí)任務(wù)
[0073]通過(guò)RPC協(xié)議傳遞消息;
[0074]工作模塊使用自身線程完成任務(wù)處理。
[0075]通常來(lái)說(shuō),離線任務(wù)對(duì)實(shí)時(shí)性要求較低,但對(duì)吞吐率要求較高,在線任務(wù)對(duì)實(shí)時(shí)性要求較高,但對(duì)吞吐率要求較低,實(shí)時(shí)任務(wù)對(duì)實(shí)時(shí)性要求較高,且多要求同步返回處理結(jié)果O
[0076]用戶可根據(jù)自身業(yè)務(wù)的計(jì)算特點(diǎn)等,選取合適的計(jì)算模式,即離線模式、在線模式或?qū)崟r(shí)模式,對(duì)應(yīng)的任務(wù)則分別為離線任務(wù)、在線任務(wù)或?qū)崟r(shí)任務(wù)。
[0077]在實(shí)際應(yīng)用中,除工作模塊、調(diào)度模塊和前端模塊外,mammoth系統(tǒng)中還可進(jìn)一步包括代理模塊(mammoth agent)。
[0078]工作模塊在每處理一個(gè)計(jì)算任務(wù)之前,可將該計(jì)算任務(wù)發(fā)送給代理模塊,以便代理模塊對(duì)該計(jì)算任務(wù)進(jìn)行保存,且若在超過(guò)預(yù)定時(shí)長(zhǎng)之前接收到工作模塊發(fā)送來(lái)的任務(wù)完成通知,則刪除該計(jì)算任務(wù),否則,轉(zhuǎn)由其它工作模塊對(duì)該計(jì)算任務(wù)進(jìn)行處理。
[0079]代理模塊在接收到該計(jì)算任務(wù)后,可開(kāi)始計(jì)時(shí),如果在達(dá)到預(yù)定時(shí)長(zhǎng)如5分鐘之前,接收到工作模塊發(fā)送來(lái)的任務(wù)完成通知,則可刪除該計(jì)算任務(wù),如果由于工作模塊出現(xiàn)故障等原因,在達(dá)到預(yù)定時(shí)長(zhǎng)之前未接收到任務(wù)完成通知,則可轉(zhuǎn)由其它工作模塊對(duì)該計(jì)算任務(wù)進(jìn)行處理,如可在調(diào)度模塊的調(diào)度下,由其它工作模塊從代理模塊中拉取該計(jì)算任務(wù)并完成處理。
[0080]通過(guò)上述方式,可使得任務(wù)不會(huì)丟失,盡可能地確保每個(gè)任務(wù)均被正確處理。所述預(yù)定時(shí)長(zhǎng)的具體取值可根據(jù)實(shí)際需要而定。
[0081]以上是關(guān)于本發(fā)明方法實(shí)施例的介紹,以下對(duì)本發(fā)明系統(tǒng)實(shí)施例進(jìn)行進(jìn)一步介紹。
[0082]實(shí)施例二
[0083]圖2為本發(fā)明計(jì)算任務(wù)處理系統(tǒng)實(shí)施例的組成結(jié)構(gòu)示意圖,如圖2所示,包括:工作模塊21,另外還可進(jìn)一步包括:調(diào)度模塊22、前端模塊23和代理模塊24等,通過(guò)各模塊之間的相互配合,完成任務(wù)接入、任務(wù)調(diào)度和任務(wù)計(jì)算等各種處理。
[0084]通常來(lái)說(shuō),工作模塊21、調(diào)度模塊22、前端模塊23和代理模塊24的個(gè)數(shù)均為多個(gè),為簡(jiǎn)化附圖,圖2中分別只表示出了一個(gè)。
[0085]另外,工作模塊21、調(diào)度模塊22和代理模塊24均可部署在云存儲(chǔ)系統(tǒng)中的存儲(chǔ)設(shè)備上。也就是說(shuō),對(duì)于每個(gè)存儲(chǔ)設(shè)備來(lái)說(shuō),可在上面部署工作模塊21、調(diào)度模塊22或代理模塊24中的一個(gè)。
[0086]調(diào)度模塊22的個(gè)數(shù)通常遠(yuǎn)少于工作模塊21的個(gè)數(shù),每個(gè)調(diào)度模塊22可分別對(duì)應(yīng)多個(gè)工作模塊21,即用于為對(duì)應(yīng)的多個(gè)工作模塊21提供調(diào)度服務(wù)。
[0087]工作模塊21獲取待處理的計(jì)算任務(wù),并通過(guò)復(fù)用所在存儲(chǔ)設(shè)備上的計(jì)算資源,完成對(duì)計(jì)算任務(wù)的處理。
[0088]所述計(jì)算任務(wù)可包括:離線任務(wù)、在線任務(wù)以及實(shí)時(shí)任務(wù)。
[0089]根據(jù)任務(wù)類型的不同,工作模塊21獲取計(jì)算任務(wù)的方式也會(huì)不同,如下所示:
[0090]I)工作模塊21拉取離線任務(wù)
[0091]工作模塊21在每次拉取離線任務(wù)之前,向調(diào)度模塊22發(fā)送調(diào)度請(qǐng)求,接收調(diào)度模塊22返回的調(diào)度指令,從消息中間件中拉取調(diào)度指令中攜帶的離線業(yè)務(wù)標(biāo)識(shí)對(duì)應(yīng)的離線任務(wù),消息中間件中的離線任務(wù)為前端模塊23接收到后發(fā)送到消息中間件中的;
[0092]2)工作模塊21接收發(fā)送來(lái)的在線任務(wù)或?qū)崟r(shí)任務(wù)
[0093]工作模塊21接收前端模塊23針對(duì)接收到的在線任務(wù)或?qū)崟r(shí)任務(wù)向調(diào)度模塊22發(fā)出調(diào)度請(qǐng)求后,根據(jù)調(diào)度模塊22返回的調(diào)度指令中攜帶的工作模塊標(biāo)識(shí)發(fā)送來(lái)的在線任務(wù)或?qū)崟r(shí)任務(wù)。
[0094]前端模塊23負(fù)責(zé)任務(wù)接入,通過(guò)與用戶進(jìn)行交互,獲取用戶發(fā)布的各類型任務(wù)。調(diào)度模塊22是系統(tǒng)中的調(diào)度組件,負(fù)責(zé)整個(gè)系統(tǒng)的任務(wù)調(diào)度。
[0095]前端模塊23在接收到一個(gè)在線任務(wù)或?qū)崟r(shí)任務(wù)后,可向調(diào)度模塊22發(fā)送調(diào)度請(qǐng)求,詢問(wèn)調(diào)度模塊22負(fù)責(zé)處理該任務(wù)的是哪個(gè)工作模塊21,調(diào)度模塊22接收到來(lái)自前端模塊23的調(diào)度請(qǐng)求后,會(huì)從眾多的工作模塊21中選出一個(gè)負(fù)責(zé)處理該任務(wù),并將選出的工作模塊標(biāo)識(shí)攜帶在調(diào)度指令中返回給前端模塊23,進(jìn)而由前端模塊23將該任務(wù)發(fā)送給所選出的工作模塊21進(jìn)行處理。
[0096]前端模塊23可將接收到的離線任務(wù)發(fā)送到消息中間件中。每個(gè)工作模塊21在每次拉取離線任務(wù)之前,都會(huì)向調(diào)度模塊22發(fā)送調(diào)度請(qǐng)求,詢問(wèn)調(diào)度模塊22本次需要拉取哪個(gè)離線業(yè)務(wù)的任務(wù),調(diào)度模塊22接收到來(lái)自工作模塊21的調(diào)度請(qǐng)求后,會(huì)按照調(diào)度規(guī)則,向工作模塊21返回?cái)y帶有離線業(yè)務(wù)標(biāo)識(shí)的調(diào)度指令,通過(guò)這種方式來(lái)通知工作模塊21去拉取哪個(gè)離線業(yè)務(wù)的任務(wù)。
[0097]調(diào)度模塊22作為調(diào)度組件,需要同時(shí)滿足離線調(diào)度和在線調(diào)度的各種特性。在線調(diào)度的特性可包括:提供可用的工作模塊21,保證各個(gè)工作模塊21之間的負(fù)載均衡等。離線調(diào)度的特性可包括:控制各工作模塊21拉取各個(gè)離線業(yè)務(wù)的任務(wù)數(shù)量和速度,保護(hù)工作模塊21的安全和執(zhí)行效率,防止過(guò)高壓力等。
[0098]另外,每個(gè)工作模塊21均可處理所有離線業(yè)務(wù)的任務(wù),根據(jù)調(diào)度模塊22的調(diào)度,可以對(duì)多個(gè)離線業(yè)務(wù)進(jìn)行計(jì)算資源和時(shí)間的分配,即在計(jì)算資源有限的情況下在各個(gè)離線業(yè)務(wù)之間調(diào)配計(jì)算資源,并需要保證計(jì)算服務(wù)不會(huì)對(duì)工作模塊21所在存儲(chǔ)設(shè)備上原有的存儲(chǔ)服務(wù)造成影響。
[0099]調(diào)度模塊22具體如何進(jìn)行調(diào)度不作限制,可根據(jù)實(shí)際需要而定。
[0100]本實(shí)施例中,計(jì)算任務(wù)可以消息的形式進(jìn)行傳遞,而且,對(duì)于不同類型的計(jì)算任務(wù),可采用不同的傳遞和處理方式,如下所示:
[0101]I)離線任務(wù)
[0102]通過(guò)消息中間件傳遞消息;
[0103]工作模塊21調(diào)起離線任務(wù)對(duì)應(yīng)的業(yè)務(wù)進(jìn)程完成任務(wù)處理;
[0104]2)在線任務(wù)
[0105]通過(guò)RPC協(xié)議傳遞消息;
[0106]工作模塊21調(diào)起在線任務(wù)對(duì)應(yīng)的業(yè)務(wù)進(jìn)程完成任務(wù)處理;
[0107]3)實(shí)時(shí)任務(wù)
[0108]通過(guò)RPC協(xié)議傳遞消息;
[0109]工作模塊21使用自身線程完成任務(wù)處理。
[0110]通常來(lái)說(shuō),離線任務(wù)對(duì)實(shí)時(shí)性要求較低,但對(duì)吞吐率要求較高,在線任務(wù)對(duì)實(shí)時(shí)性要求較高,但對(duì)吞吐率要求較低,實(shí)時(shí)任務(wù)對(duì)實(shí)時(shí)性要求較高,且多要求同步返回處理結(jié)果O
[0111]用戶可根據(jù)自身業(yè)務(wù)的計(jì)算特點(diǎn)等,選取合適的計(jì)算模式,即離線模式、在線模式或?qū)崟r(shí)模式,對(duì)應(yīng)的任務(wù)則分別為離線任務(wù)、在線任務(wù)或?qū)崟r(shí)任務(wù)。
[0112]另外,工作模塊21在每處理一個(gè)計(jì)算任務(wù)之前,還可將該計(jì)算任務(wù)發(fā)送給代理模塊24,并在任務(wù)處理完成后通知代理模塊24。
[0113]代理模塊24對(duì)該計(jì)算任務(wù)進(jìn)行保存,且若在超過(guò)預(yù)定時(shí)長(zhǎng)之前接收到工作模塊21發(fā)送來(lái)的任務(wù)完成通知,則刪除該計(jì)算任務(wù),否則,轉(zhuǎn)由其它工作模塊21對(duì)該計(jì)算任務(wù)進(jìn)行處理。
[0114]通過(guò)上述方式,可使得任務(wù)不會(huì)丟失,盡可能地確保每個(gè)任務(wù)均被正確處理。所述預(yù)定時(shí)長(zhǎng)的具體取值可根據(jù)實(shí)際需要而定。
[0115]總之,采用本發(fā)明所述方案,在存儲(chǔ)設(shè)備上部署工作模塊,工作模塊可通過(guò)復(fù)用存儲(chǔ)設(shè)備上閑置的計(jì)算資源,完成對(duì)計(jì)算任務(wù)的處理,從而以近乎零成本的方式獲取到了大量的計(jì)算能力,相比于現(xiàn)有技術(shù),無(wú)需再專門搭建物理計(jì)算集群,進(jìn)而極大地降低了對(duì)資源和成本的消耗,并提高了存儲(chǔ)設(shè)備的資源利用率。
[0116]在本發(fā)明所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng)和方法,可以通過(guò)其它的方式實(shí)現(xiàn)。例如,以上所描述的系統(tǒng)實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式。
[0117]所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。
[0118]另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟件功能單元的形式實(shí)現(xiàn)。
[0119]上述以軟件功能單元的形式實(shí)現(xiàn)的集成的單元,可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。上述軟件功能單元存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(R0M,Read-Only Memory,)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0120]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
【主權(quán)項(xiàng)】
1.一種計(jì)算任務(wù)處理方法,其特征在于,包括: 工作模塊獲取待處理的計(jì)算任務(wù),所述工作模塊部署在云存儲(chǔ)系統(tǒng)中的存儲(chǔ)設(shè)備上的; 所述工作模塊通過(guò)復(fù)用所在存儲(chǔ)設(shè)備上的計(jì)算資源,完成對(duì)所述計(jì)算任務(wù)的處理。2.根據(jù)權(quán)利要求1所述的方法,其特征在于, 所述計(jì)算任務(wù)包括:尚線任務(wù)、在線任務(wù)以及實(shí)時(shí)任務(wù)。3.根據(jù)權(quán)利要求2所述的方法,其特征在于, 所述工作模塊獲取待處理的計(jì)算任務(wù)包括: 所述工作模塊拉取離線任務(wù); 所述工作模塊接收發(fā)送來(lái)的在線任務(wù)或?qū)崟r(shí)任務(wù)。4.根據(jù)權(quán)利要求3所述的方法,其特征在于, 所述工作模塊拉取離線任務(wù)包括: 所述工作模塊在每次拉取離線任務(wù)之前,向調(diào)度模塊發(fā)送調(diào)度請(qǐng)求,并接收所述調(diào)度模塊返回的調(diào)度指令,從消息中間件中拉取所述調(diào)度指令中攜帶的離線業(yè)務(wù)標(biāo)識(shí)對(duì)應(yīng)的離線任務(wù),所述消息中間件中的離線任務(wù)為所述前端模塊接收到后發(fā)送到所述消息中間件中的。5.根據(jù)權(quán)利要求3所述的方法,其特征在于, 所述工作模塊接收發(fā)送來(lái)的在線任務(wù)或?qū)崟r(shí)任務(wù)包括: 所述工作模塊接收所述前端模塊針對(duì)接收到的在線任務(wù)或?qū)崟r(shí)任務(wù)向調(diào)度模塊發(fā)出調(diào)度請(qǐng)求后,根據(jù)所述調(diào)度模塊返回的調(diào)度指令中攜帶的工作模塊標(biāo)識(shí)發(fā)送來(lái)的在線任務(wù)或?qū)崟r(shí)任務(wù)。6.根據(jù)權(quán)利要求2所述的方法,其特征在于, 所述完成對(duì)所述計(jì)算任務(wù)的處理包括: 當(dāng)所述計(jì)算任務(wù)為離線任務(wù)或在線任務(wù)時(shí),所述工作模塊調(diào)起所述計(jì)算任務(wù)對(duì)應(yīng)的業(yè)務(wù)進(jìn)程,完成對(duì)所述計(jì)算任務(wù)的處理; 當(dāng)所述計(jì)算任務(wù)為實(shí)時(shí)任務(wù)時(shí),所述工作模塊使用自身線程,完成對(duì)所述計(jì)算任務(wù)的處理。7.根據(jù)權(quán)利要求1所述的方法,其特征在于, 該方法進(jìn)一步包括: 在處理所述計(jì)算任務(wù)之前,所述工作模塊將所述計(jì)算任務(wù)發(fā)送給代理模塊,以便所述代理模塊對(duì)所述計(jì)算任務(wù)進(jìn)行保存,且若在超過(guò)預(yù)定時(shí)長(zhǎng)之前接收到所述工作模塊發(fā)送來(lái)的任務(wù)完成通知,則刪除所述計(jì)算任務(wù),否則,轉(zhuǎn)由其它工作模塊對(duì)所述計(jì)算任務(wù)進(jìn)行處理。8.一種計(jì)算任務(wù)處理系統(tǒng),其特征在于,包括:工作模塊; 所述工作模塊部署在云存儲(chǔ)系統(tǒng)中的存儲(chǔ)設(shè)備上, 所述工作模塊,用于獲取待處理的計(jì)算任務(wù),并通過(guò)復(fù)用所在存儲(chǔ)設(shè)備上的計(jì)算資源,完成對(duì)所述計(jì)算任務(wù)的處理。9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于, 所述計(jì)算任務(wù)包括:尚線任務(wù)、在線任務(wù)以及實(shí)時(shí)任務(wù)。10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于, 所述工作模塊拉取離線任務(wù); 所述工作模塊接收發(fā)送來(lái)的在線任務(wù)或?qū)崟r(shí)任務(wù)。11.根據(jù)權(quán)利要求10所述的系統(tǒng),其特征在于, 所述系統(tǒng)中進(jìn)一步包括:調(diào)度模塊和前端模塊; 所述工作模塊在每次拉取離線任務(wù)之前,向所述調(diào)度模塊發(fā)送調(diào)度請(qǐng)求,接收所述調(diào)度模塊返回的調(diào)度指令,從消息中間件中拉取所述調(diào)度指令中攜帶的離線業(yè)務(wù)標(biāo)識(shí)對(duì)應(yīng)的離線任務(wù); 所述調(diào)度模塊,用于當(dāng)接收到來(lái)自所述工作模塊的調(diào)度請(qǐng)求后,向所述工作模塊返回?cái)y帶有需要拉取的離線業(yè)務(wù)標(biāo)識(shí)的調(diào)度指令; 所述前端模塊,用于將接收到的離線任務(wù)發(fā)送到所述消息中間件中。12.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于, 所述前端模塊進(jìn)一步用于,當(dāng)接收到在線任務(wù)或?qū)崟r(shí)任務(wù)時(shí),向所述調(diào)度模塊發(fā)送調(diào)度請(qǐng)求,將所述在線任務(wù)或?qū)崟r(shí)任務(wù)發(fā)送給所述調(diào)度模塊返回的調(diào)度指令中攜帶的工作模塊標(biāo)識(shí)對(duì)應(yīng)的工作模塊; 所述調(diào)度模塊進(jìn)一步用于,當(dāng)接收到來(lái)自所述前端模塊的調(diào)度請(qǐng)求后,向所述前端模塊返回?cái)y帶有負(fù)責(zé)處理任務(wù)的工作模塊標(biāo)識(shí)的調(diào)度指令。13.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于, 當(dāng)所述計(jì)算任務(wù)為離線任務(wù)或在線任務(wù)時(shí),所述工作模塊調(diào)起所述計(jì)算任務(wù)對(duì)應(yīng)的業(yè)務(wù)進(jìn)程,完成對(duì)所述計(jì)算任務(wù)的處理; 當(dāng)所述計(jì)算任務(wù)為實(shí)時(shí)任務(wù)時(shí),所述工作模塊使用自身線程,完成對(duì)所述計(jì)算任務(wù)的處理。14.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于, 所述系統(tǒng)中進(jìn)一步包括:代理模塊; 所述工作模塊進(jìn)一步用于,在處理所述計(jì)算任務(wù)之前,將所述計(jì)算任務(wù)發(fā)送給所述代理模塊,并在任務(wù)處理完成后通知所述代理模塊; 所述代理模塊,用于對(duì)所述計(jì)算任務(wù)進(jìn)行保存,且若在超過(guò)預(yù)定時(shí)長(zhǎng)之前接收到所述工作模塊發(fā)送來(lái)的任務(wù)完成通知,則刪除所述計(jì)算任務(wù),否則,轉(zhuǎn)由其它工作模塊對(duì)所述計(jì)算任務(wù)進(jìn)行處理。
【文檔編號(hào)】G06F9/50GK106095534SQ201610399492
【公開(kāi)日】2016年11月9日
【申請(qǐng)日】2016年6月7日
【發(fā)明人】陳曦, 高巍, 范利平, 牛磊, 林曉剛
【申請(qǐng)人】百度在線網(wǎng)絡(luò)技術(shù)(北京)有限公司