本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種任務(wù)調(diào)度方法及裝置。
背景技術(shù):
業(yè)務(wù)機集群,即多個處理任務(wù)的終端設(shè)備。業(yè)務(wù)機集群可以包括前端的請求集群和后端的作業(yè)集群,其中請求集群中的請求終端接收到多個請求之后,可以生成對應(yīng)數(shù)量的任務(wù),將生成的任務(wù)分配給作業(yè)集群,作業(yè)集群中接收到任務(wù)的作業(yè)終端對該任務(wù)進行處理。
傳統(tǒng)的任務(wù)調(diào)度方法可以包括hash分配方法和消息隊列解耦方法。其中,hash分配方法具體可以為:請求集群中的請求終端通過預(yù)設(shè)hash函數(shù)將不同任務(wù)分配給作業(yè)集群中的不同作業(yè)終端,由于預(yù)設(shè)hash函數(shù)是預(yù)先設(shè)定的,當擴容或者縮減作業(yè)集群中的作業(yè)終端之后,請求終端通過預(yù)設(shè)hash函數(shù)無法將任務(wù)分配給增加的作業(yè)終端或者仍然將任務(wù)分配給已退出作業(yè)集群的作業(yè)終端,導(dǎo)致任務(wù)無法正常調(diào)度,降低作業(yè)調(diào)度的可靠性。消息隊列解耦方法具體可以為:請求集群中的請求終端通過分布式消息隊列組件將任務(wù)調(diào)度給作業(yè)集群中的作業(yè)終端,但是任務(wù)調(diào)度的性能受限于消息隊列的吞吐與網(wǎng)絡(luò)延遲,同一作業(yè)終端無法同時調(diào)度多個任務(wù),任務(wù)調(diào)度的有效性較低。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例所要解決的技術(shù)問題在于,提供一種任務(wù)調(diào)度方法及裝置,可提高任務(wù)調(diào)度的有效性和可靠性。
為了解決上述技術(shù)問題,本發(fā)明實施例提供了一種任務(wù)調(diào)度方法,所述方法包括:
第一作業(yè)終端根據(jù)所述第一作業(yè)終端所屬作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的數(shù)量,獲取各個當前需要處理的任務(wù)的任務(wù)調(diào)度信息,作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端包括所述第一作業(yè)終端;
所述第一作業(yè)終端根據(jù)所述作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的 終端標識信息,獲取所述第一作業(yè)終端的終端排列信息;
所述第一作業(yè)終端調(diào)度與所述終端排列信息匹配的任務(wù)調(diào)度信息對應(yīng)的任務(wù)。
相應(yīng)地,本發(fā)明實施例還提供了一種任務(wù)調(diào)度裝置,包括:
任務(wù)調(diào)度信息獲取單元,用于根據(jù)第一作業(yè)終端所屬作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的數(shù)量,獲取各個當前需要處理的任務(wù)的任務(wù)調(diào)度信息,作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端包括所述第一作業(yè)終端;
終端排列信息獲取單元,用于根據(jù)所述作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的終端標識信息,獲取所述第一作業(yè)終端的終端排列信息;
任務(wù)調(diào)度單元,用于調(diào)度與所述終端排列信息匹配的任務(wù)調(diào)度信息對應(yīng)的任務(wù)。
實施本發(fā)明實施例,第一作業(yè)終端根據(jù)第一作業(yè)終端所屬作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的數(shù)量,獲取各個當前需要處理的任務(wù)的任務(wù)調(diào)度信息,根據(jù)作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的終端標識信息,獲取第一作業(yè)終端的終端排列信息,調(diào)度與終端排列信息匹配的任務(wù)調(diào)度信息對應(yīng)的任務(wù)。其中,與終端排列信息匹配的任務(wù)調(diào)度信息對應(yīng)的任務(wù)可以包括多個,則第一作業(yè)終端可并行調(diào)度多個任務(wù),提高任務(wù)調(diào)度的有效性;另外,當作業(yè)集群進行擴容或縮容等更新時,第一作業(yè)終端可對任務(wù)調(diào)度信息和終端排列信息進行更新,增加的作業(yè)終端可調(diào)度任務(wù),退出作業(yè)集群的作業(yè)終端無法調(diào)度任務(wù),可實現(xiàn)任務(wù)的正常調(diào)度,提高任務(wù)調(diào)度的可靠性。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實施例中提供的一種任務(wù)調(diào)度方法的流程示意圖;
圖2a是本發(fā)明實施例中提供的一種任務(wù)調(diào)度的界面示意圖;
圖2b是本發(fā)明實施例中提供的一種作業(yè)集群的狀態(tài)示意圖;
圖3是本發(fā)明另一實施例中提供的一種任務(wù)調(diào)度方法的流程示意圖;
圖4是本發(fā)明實施例中提供的一種任務(wù)調(diào)度裝置的流程示意圖;
圖5是本發(fā)明實施例中提供的一種終端的結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
上述任務(wù)調(diào)度方法可以運行在平板電腦、手機、個人計算機(personalcomputer,pc)、筆記本電腦或網(wǎng)絡(luò)電視等終端中。
請參見圖1,圖1是本發(fā)明實施例中的一種任務(wù)調(diào)度方法的流程示意圖,如圖所示本發(fā)明實施例中的任務(wù)調(diào)度方法可以包括:
s101,第一作業(yè)終端根據(jù)第一作業(yè)終端所屬作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的數(shù)量,獲取各個當前需要處理的任務(wù)的任務(wù)調(diào)度信息。
第一作業(yè)終端可以根據(jù)第一作業(yè)終端所屬作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的數(shù)量,獲取各個當前需要處理的任務(wù)的任務(wù)調(diào)度信息。其中,作業(yè)集群可以包括至少一個作業(yè)終端,至少一個作業(yè)終端中的所有或者部分作業(yè)終端為當前可用于調(diào)度任務(wù)的作業(yè)終端,第一作業(yè)終端可以為當前可用于調(diào)度任務(wù)的作業(yè)終端中的任一作業(yè)終端。作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的數(shù)量大于或者等于1。任務(wù)調(diào)度信息用于標識當前需要處理的任務(wù),任務(wù)調(diào)度信息可以為數(shù)值,例如0或者1等自然數(shù)??蛇x的,不同任務(wù)的任務(wù)調(diào)度信息可以相同,也可以不相同,同一任務(wù)調(diào)度信息可以對應(yīng)一個或者多個任務(wù)。
在可選實施例中,第一作業(yè)終端可以獲取各個任務(wù)的排列序號,獲取作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的數(shù)量,將各個任務(wù)的排列序號對作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的數(shù)量進行取模,得到各個任務(wù)的任務(wù)調(diào)度信息。
以圖2a所示的任務(wù)調(diào)度的界面示意圖為例,前端的請求集群中的請求終端接收到請求之后,可以生成對應(yīng)的任務(wù),并將任務(wù)存儲到預(yù)設(shè)數(shù)據(jù)庫中。各個任務(wù)的任務(wù)狀態(tài)可以為doing狀態(tài)或者done狀態(tài),doing狀態(tài)表明該任務(wù)未被作業(yè)終端調(diào)度,即該任務(wù)是當前需要處理的,done狀態(tài)表明該任務(wù)已被 其他作業(yè)終端調(diào)度。則作業(yè)終端調(diào)度與終端標識信息匹配的任務(wù)標識信息對應(yīng)的任務(wù)之前,可以判斷與終端標識信息匹配的任務(wù)標識信息對應(yīng)的任務(wù)的任務(wù)狀態(tài)是否為doing狀態(tài),當該任務(wù)的任務(wù)狀態(tài)為doing狀態(tài)時,作業(yè)終端可以調(diào)度該任務(wù),進而預(yù)設(shè)數(shù)據(jù)塊可以將該任務(wù)的狀態(tài)更新為done狀態(tài)。其中,預(yù)設(shè)數(shù)據(jù)庫可以包括mysql或者redis數(shù)據(jù)塊等。預(yù)設(shè)數(shù)據(jù)庫可以維護任務(wù)路由表,各個任務(wù)可以按照生成時間的先后順序?qū)懭肴蝿?wù)路由表中,并按照生成時間的先后順序?qū)Ω鱾€任務(wù)分配排列序號,各個排列序號可以呈遞增趨勢,例如第一個寫入任務(wù)路由表中的任務(wù)的排列序號為1,第二個寫入任務(wù)路由表中的任務(wù)的排列序號為2,等等??蛇x的,當存在多個任務(wù)的生成時間相同時,可以獲取生成上述任務(wù)的請求終端的優(yōu)先級,根據(jù)優(yōu)先級對上述任務(wù)進行排序,例如當前任務(wù)路由表中的最大排列序號為2,第一請求終端當前生成的第一任務(wù)和第二請求終端當前生成的第二任務(wù)的生成時間相同,第一請求終端的優(yōu)先級高于第二請求終端的優(yōu)先級,則對第一任務(wù)分配的排列序號可以為3,對第二任務(wù)分配的排列序號可以為4。
其中,第一作業(yè)終端可以確定當前需要處理的任務(wù)的任務(wù)狀態(tài)為doing狀態(tài),即排列序號為2的第二任務(wù)、排列序號為3的第三任務(wù)以及排列序號為4的第四任務(wù)為當前需要處理的任務(wù)。作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的數(shù)量為3,第二任務(wù)的排列序號為2,第一作業(yè)終端可以將2對3進行取模,得到第二任務(wù)的任務(wù)調(diào)度信息為2;第三任務(wù)的排列序號為3,第一作業(yè)終端可以將3對3進行取模,得到第三任務(wù)的任務(wù)調(diào)度信息為0;第四任務(wù)的排列序號為4,第一作業(yè)終端可以將4對3進行取模,得到第四任務(wù)的任務(wù)調(diào)度信息為1。
可選的,如果作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的數(shù)量進行了更新,則各個任務(wù)的任務(wù)調(diào)度信息也會進行更新。例如,如果作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的數(shù)量更新為4,當前需要處理的任務(wù)保持不變,即排列序號為2的第二任務(wù)、排列序號為3的第三任務(wù)以及排列序號為4的第四任務(wù),則第一作業(yè)終端可以將2對4進行取模,得到第二任務(wù)的任務(wù)調(diào)度信息為2;將3對4進行取模,得到第三任務(wù)的任務(wù)調(diào)度信息為3;將4對4進行取模,得到第四任務(wù)的任務(wù)調(diào)度信息為0。
s102,第一作業(yè)終端根據(jù)作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的終端標識信息,獲取第一作業(yè)終端的終端排列信息。
第一作業(yè)終端可以根據(jù)作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的終端標識信息,獲取第一作業(yè)終端的終端排列信息。其中,終端標識信息可以用于唯一標識作業(yè)終端,例如網(wǎng)絡(luò)之間互連的協(xié)議(internetprotocol,ip)地址或者國際移動設(shè)備身份標識(internationalmobileequipmentidentity,imei)等。終端排列信息用于標識當前可用于調(diào)度任務(wù)的作業(yè)終端,終端排列信息可以為數(shù)值,例如0或者1等自然數(shù)??蛇x的,不同作業(yè)終端的終端排列信息各不相同。
在可選實施例中,第一作業(yè)終端可以獲取作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的終端標識信息,根據(jù)終端標識信息對作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端進行排序,得到作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的排列序號,將第一作業(yè)終端的排列序號作為第一作業(yè)終端的終端排列信息。
具體實現(xiàn)中,第一作業(yè)終端可以獲取本作業(yè)終端的ip地址以及作業(yè)集群中其它各個可用于調(diào)度任務(wù)的作業(yè)終端的ip地址,將本作業(yè)終端的ip地址以及作業(yè)集群中其它各個可用于調(diào)度任務(wù)的作業(yè)終端的ip地址進行比較,按照ip地址以預(yù)設(shè)的某種順序(如從大到小的順序)對本作業(yè)終端和作業(yè)集群中其它各個可用于調(diào)度任務(wù)的作業(yè)終端進行排序,以得到本作業(yè)終端和作業(yè)集群中其它各個可用于調(diào)度任務(wù)的作業(yè)終端的排列序號,將各個作業(yè)終端的排列序號作為該作業(yè)終端的終端排列信息。例如,作業(yè)集群包括三個可用于調(diào)度任務(wù)的作業(yè)終端,第一作業(yè)終端的ip地址為192.168.10.3,第二作業(yè)終端的ip地址為192.168.10.2,第三作業(yè)終端的ip地址為192.168.22.1,可以確定第三作業(yè)終端的ip地址最大,第二作業(yè)終端的ip地址最小,則排序后的作業(yè)終端為:第三作業(yè)終端、第一作業(yè)終端以及第二作業(yè)終端,第三作業(yè)終端的排列序號為0,第一作業(yè)終端的排列序號為1,第二作業(yè)終端的排列序號為2,進而可以確定第一作業(yè)終端的終端排列信息為1,第二作業(yè)終端的終端排列信息為2,第三作業(yè)終端的終端排列信息為0。
可選的,如果作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端進行了更新,則各個終端排列信息也會進行更新。例如,如果作業(yè)集群中可用于調(diào)度任務(wù)的作業(yè)終端進行了更新,即當前可用于調(diào)度任務(wù)的作業(yè)終端包括第一作業(yè)終端、第三作業(yè)終端以及第四作業(yè)終端,第一作業(yè)終端的ip地址為192.168.10.3,第三作業(yè)終端的ip地址為192.168.22.1,第四作業(yè)終端的ip地址為192.168.23.1,可以確定第四作業(yè)終端的ip地址最大,第一作業(yè)終端的ip地址最小,則排序后的作 業(yè)終端為:第四作業(yè)終端、第三作業(yè)終端以及第一作業(yè)終端,第四作業(yè)終端的排列序號為0,第三作業(yè)終端的排列序號為1,第一作業(yè)終端的排列序號為2,可以確定第一作業(yè)終端的終端排列信息為2,第三作業(yè)終端的終端排列信息為1,第四作業(yè)終端的終端排列信息為0。
需要指出的是,終端排列信息的確定方式包含但不局限于上述方法,例如可以按照ip地址從小到大的順序?qū)ψ鳂I(yè)集群中各個可用于調(diào)度任務(wù)的作業(yè)終端進行排序,以得到各個作業(yè)終端的終端排列信息,具體不受本發(fā)明實施例的限制。
s103,第一作業(yè)終端調(diào)度與終端排列信息匹配的任務(wù)調(diào)度信息對應(yīng)的任務(wù)。
第一作業(yè)終端可以調(diào)度與終端排列信息匹配的任務(wù)調(diào)度信息對應(yīng)的任務(wù)。具體實現(xiàn)中,第一作業(yè)終端可以并行調(diào)度至少一個任務(wù),并對調(diào)度的至少一個任務(wù)進行處理。例如,第二任務(wù)的任務(wù)調(diào)度信息為2,第三任務(wù)的任務(wù)調(diào)度信息為0,第四任務(wù)的任務(wù)調(diào)度信息為1,且第一作業(yè)終端的終端排列信息為1,第二作業(yè)終端的終端排列信息為2,第三作業(yè)終端的終端排列信息為0,則第一作業(yè)終端可以調(diào)度第四任務(wù),第二作業(yè)終端可以調(diào)度第二任務(wù),第三作業(yè)終端可以調(diào)度第三任務(wù)。
在可選實施例中,第一作業(yè)終端檢測到作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端進行更新時,可以將更新后的作業(yè)終端作為作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端,進而執(zhí)行s101的步驟。例如,第一作業(yè)終端檢測到作業(yè)集群進行了擴容,可以根據(jù)擴容后的作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的數(shù)量,獲取各個當前需要處理的任務(wù)的任務(wù)調(diào)度信息,根據(jù)擴容后的作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的終端標識信息,獲取第一作業(yè)終端的終端排列信息,調(diào)度與本端的終端排列信息匹配的任務(wù)調(diào)度信息對應(yīng)的任務(wù)。又如,第一作業(yè)終端檢測到作業(yè)集群進行了縮容,可以根據(jù)縮容后的作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的數(shù)量,獲取各個當前需要處理的任務(wù)的任務(wù)調(diào)度信息,根據(jù)縮容后的作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的終端標識信息,獲取第一作業(yè)終端的終端排列信息,調(diào)度與本端的終端排列信息匹配的任務(wù)調(diào)度信息對應(yīng)的任務(wù)。
進一步可選的,第一作業(yè)終端可以接收需要加入作業(yè)集群的第二作業(yè)終端發(fā)送的針對作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的終端標識信息獲取請 求,將各個終端標識信息發(fā)送給第二作業(yè)終端,以使第二作業(yè)終端根據(jù)終端標識信息,向作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端發(fā)送終端排列信息更新請求,第二作業(yè)終端接收作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端反饋的終端排列更新響應(yīng)信息,接收第二作業(yè)終端發(fā)送的任務(wù)調(diào)度信息更新請求,確定作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端更新完畢。
本發(fā)明實施例中,第一作業(yè)終端根據(jù)第一作業(yè)終端所屬作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的數(shù)量,獲取各個當前需要處理的任務(wù)的任務(wù)調(diào)度信息,根據(jù)作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的終端標識信息,獲取第一作業(yè)終端的終端排列信息,調(diào)度與終端排列信息匹配的任務(wù)調(diào)度信息對應(yīng)的任務(wù),可提高任務(wù)調(diào)度的有效性和可靠性。
請參見圖3,圖3是本發(fā)明另一實施例中的一種任務(wù)調(diào)度方法的流程示意圖,如圖所示本發(fā)明實施例中的任務(wù)調(diào)度方法可以包括:
s301,第二作業(yè)終端向作業(yè)集群中的第一作業(yè)終端發(fā)送終端標識信息獲取請求。
第二作業(yè)終端需要加入第一作業(yè)終端所屬的作業(yè)集群時,可以向作業(yè)集群中的第一作業(yè)終端發(fā)送針對作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的終端標識信息獲取請求。其中,第一作業(yè)終端可以為作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端中的至少一個作業(yè)終端,且第一作業(yè)終端與第二作業(yè)終端建立通信連接。當?shù)谝蛔鳂I(yè)終端中的一個作業(yè)終端出現(xiàn)故障導(dǎo)致不能與第二作業(yè)終端通信時,第一作業(yè)終端中的其他作業(yè)終端可以與第二作業(yè)終端通信,提高數(shù)據(jù)處理的可靠性。第二作業(yè)終端希望加入該作業(yè)集群中,且該作業(yè)集群當前不包括第二作業(yè)終端。
以圖2b所示的作業(yè)集群的狀態(tài)圖為例,作業(yè)終端的狀態(tài)可以為online狀態(tài),joining狀態(tài),working狀態(tài),offline狀態(tài)以及silence狀態(tài)。其中online狀態(tài)表明第二作業(yè)終端在線,并已被作業(yè)集群中的第一作業(yè)終端認可,joining狀態(tài)表明第二作業(yè)終端準備加入作業(yè)集群中,working狀態(tài)表明第二作業(yè)終端可進行任務(wù)調(diào)度,offline狀態(tài)表明第二作業(yè)終端與作業(yè)集群中的所有作業(yè)終端都沒有通信連接,silence狀態(tài)表明第二作業(yè)終端當前不可進行任務(wù)調(diào)度。進一步的,第二作業(yè)終端處于online狀態(tài)時接收到作業(yè)集 群中所有當前可用于調(diào)度任務(wù)的作業(yè)終端發(fā)送的lsr包,第二作業(yè)終端的狀態(tài)將更新為silence狀態(tài)。第二作業(yè)終端保持silence狀態(tài)12s之后將更新為working狀態(tài)。第二作業(yè)終端處于working狀態(tài)時接收到作業(yè)集群中任一作業(yè)終端發(fā)送的lsr包,第二作業(yè)終端的狀態(tài)將更新為silence狀態(tài)。第二作業(yè)終端處于working狀態(tài)時未接收到作業(yè)集群中所有作業(yè)終端發(fā)送的hello包,第二作業(yè)終端的狀態(tài)將更新為offline狀態(tài)。
其中,hello包用于作業(yè)集群中各個作業(yè)終端之間的相互發(fā)現(xiàn)。lsr包用于告知作業(yè)集群中的各個作業(yè)終端需要更新任務(wù)調(diào)度表,即重新確定各個當前需要處理的任務(wù)的任務(wù)調(diào)度信息。作業(yè)集群中任一作業(yè)終端處于silence狀態(tài)時接收到其他作業(yè)終端發(fā)送的lsr包,將觸發(fā)該作業(yè)終端回復(fù)一個lsr包。
具體實現(xiàn)中,當?shù)诙鳂I(yè)終端需要加入作業(yè)集群中時,第二作業(yè)終端的初始狀態(tài)為joing狀態(tài),第二作業(yè)終端可以向與本端建立通信連接的第一作業(yè)終端發(fā)送終端標識信息獲取請求。終端標識信息獲取請求可以為hello包,例如第二作業(yè)終端可以與第一作業(yè)終端建立通信連接,第一作業(yè)終端的狀態(tài)為working狀態(tài),第二作業(yè)終端可以向第一作業(yè)終端發(fā)送hello包,該hello包可以攜帶第二作業(yè)終端的狀態(tài)標識信息,第一作業(yè)終端根據(jù)第二作業(yè)終端的狀態(tài)標識信息確定第二作業(yè)終端的狀態(tài)為joing狀態(tài)時,第一作業(yè)終端可以向第二作業(yè)終端反饋各個可用于調(diào)度任務(wù)的終端的終端標識信息,例如第一作業(yè)終端可以將當前的任務(wù)調(diào)度表發(fā)送給第二作業(yè)終端,任務(wù)調(diào)度表可以包括作業(yè)集群中各個作業(yè)終端的終端標識信息。
s302,第二作業(yè)終端接收第一作業(yè)終端發(fā)送的作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的終端標識信息。
第一作業(yè)終端接收到終端標識信息獲取請求之后,可以響應(yīng)該終端標識信息獲取請求,向第二作業(yè)終端反饋作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的終端標識信息。例如,第一作業(yè)終端可以根據(jù)終端標識信息獲取請求,向第二作業(yè)終端發(fā)送任務(wù)調(diào)度表。作業(yè)集群中的各個作業(yè)終端將維護任務(wù)調(diào)度表,當作業(yè)集群更新時,各個作業(yè)終端需要更新任務(wù)調(diào)度表。任務(wù)調(diào)度表可以如下所示:
[{name:ipa};{status:working};{mod:0}];
[{name:ipb};{status:working};{mod:1}];
[{name:ipc};{status:working};{mod:2}];
[{name:ipd};{status:working};{mod:3}]。
通過任務(wù)調(diào)度表可以知悉,各個可用于調(diào)度任務(wù)的作業(yè)終端的終端標識信息為ip地址,ip地址為a的作業(yè)終端處于working狀態(tài),當前正在處理的任務(wù)的任務(wù)調(diào)度信息為0;ip地址為b的作業(yè)終端處于working狀態(tài),當前正在處理的任務(wù)的任務(wù)調(diào)度信息為1;ip地址為c的作業(yè)終端處于working狀態(tài),當前正在處理的任務(wù)的任務(wù)調(diào)度信息為2;ip地址為d的作業(yè)終端處于working狀態(tài),當前正在處理的任務(wù)的任務(wù)調(diào)度信息為3。
s303,第二作業(yè)終端根據(jù)終端標識信息,向作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端發(fā)送終端排列信息更新請求。
第二作業(yè)終端可以根據(jù)各個終端標識信息,向作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端發(fā)送終端排列信息更新請求。具體實現(xiàn)中,第二作業(yè)終端可以根據(jù)各個作業(yè)終端的ip地址,向各個作業(yè)終端發(fā)送hello包。
s304,第二作業(yè)終端接收作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端反饋的終端排列更新響應(yīng)信息。
第二作業(yè)終端向作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端發(fā)送終端排列信息更新請求之后,可以接收各個作業(yè)終端發(fā)送的終端排列更新響應(yīng)信息。具體實現(xiàn)中,第二作業(yè)終端根據(jù)終端標識信息向各個作業(yè)終端發(fā)送hello包之后,可以接收各個作業(yè)終端回復(fù)的hello包,進而第二作業(yè)終端的狀態(tài)更新為online狀態(tài)。作業(yè)集群中各個作業(yè)終端可以對任務(wù)調(diào)度表進行更新,更新后的任務(wù)調(diào)度表可以為:
[{name:ipa};{status:working};{mod:0}];
[{name:ipb};{status:working};{mod:1}];
[{name:ipc};{status:working};{mod:2}];
[{name:ipd};{status:working};{mod:3}];
[{name:ipe};{status:online};{mod:n/a}]。
其中,ip地址為e的作業(yè)終端為第二作業(yè)終端,第二作業(yè)終端的狀態(tài)為online狀態(tài),n/a表明第二作業(yè)終端當前未進行任務(wù)調(diào)度。
s305,第二作業(yè)終端向作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端發(fā)送任務(wù)調(diào)度信息更新請求。
具體實現(xiàn)中,任務(wù)調(diào)度信息更新請求可以為lsr包。例如,第二作業(yè)終端接收作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端發(fā)送的hello包之后,第二作業(yè)終端的狀態(tài)更新為online狀態(tài),進而可以向作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端發(fā)送lsr包,處于working狀態(tài)的當前可用于調(diào)度任務(wù)的作業(yè)終端接收到lsr包之后,可以將狀態(tài)更新為silence狀態(tài)。各個作業(yè)終端接收到lsr包之后,可以向第二作業(yè)終端回復(fù)lsr包,第二作業(yè)終端處于online狀態(tài)時接收到作業(yè)集群中的所有作業(yè)終端發(fā)送的lsr包,可以將狀態(tài)更新為silence狀態(tài),處于silence狀態(tài)的各個作業(yè)終端無法調(diào)度新的任務(wù),則各個作業(yè)終端可以對當前需要處理的任務(wù)的任務(wù)調(diào)度信息進行更新。
s306,第二作業(yè)終端根據(jù)作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的數(shù)量,獲取各個當前需要處理的任務(wù)的任務(wù)調(diào)度信息。
例如,作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的數(shù)量為5,當前需要處理的任務(wù)包括排列序號為2的第二任務(wù)、排列序號為3的第三任務(wù)以及排列序號為4的第四任務(wù),第二作業(yè)終端可以將2對5進行取模,得到第二任務(wù)的任務(wù)調(diào)度信息為2;將3對5進行取模,得到第三任務(wù)的任務(wù)調(diào)度信息為3;將4對5進行取模,得到第四任務(wù)的任務(wù)調(diào)度信息為4。
s307,第二作業(yè)終端根據(jù)作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的終端標識信息,獲取第二作業(yè)終端的終端排列信息。
例如,第二作業(yè)終端可以獲取本作業(yè)終端的ip地址以及作業(yè)集群中其它各個可用于調(diào)度任務(wù)的作業(yè)終端的ip地址,將本作業(yè)終端的ip地址以及作業(yè)集群中其它各個可用于調(diào)度任務(wù)的作業(yè)終端的ip地址進行比較,按照ip地址以預(yù)設(shè)的某種順序(如從大到小的順序)對本作業(yè)終端和作業(yè)集群中其它各個可用于調(diào)度任務(wù)的作業(yè)終端進行排序,以得到本作業(yè)終端和作業(yè)集群中其它各個可用于調(diào)度任務(wù)的作業(yè)終端的排列序號,將各個作業(yè)終端的排列序號作為該作業(yè)終端的終端排列信息。
具體實現(xiàn)中,第二作業(yè)終端獲取當前需要處理的任務(wù)的任務(wù)調(diào)度信息,以及作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的終端標識信息之后,可以對任務(wù)調(diào)度表進行更新。
s308,第二作業(yè)終端調(diào)度與第二作業(yè)終端的終端排列信息匹配的任務(wù)調(diào)度信息對應(yīng)的任務(wù)。
第二作業(yè)終端處于silence狀態(tài)開始間隔12s之后,可以更新為working狀態(tài),進而調(diào)度與第二作業(yè)終端的終端排列信息匹配的任務(wù)調(diào)度信息對應(yīng)的任務(wù)。本發(fā)明實施例中由silence狀態(tài)更新為working狀態(tài)的時間間隔設(shè)定為12s,可確保不同作業(yè)終端維護的任務(wù)調(diào)度表的收斂一致性,同時確保作業(yè)集群中作業(yè)終端處理任務(wù)的時延較小。
在可選實施例中,當作業(yè)集群中的作業(yè)終端在4個hello包的周期內(nèi)未接收到其他作業(yè)終端發(fā)送的hello包時,該作業(yè)終端將退出該作業(yè)集群。
在可選實施例中,作業(yè)終端處于silence狀態(tài)時,可以暫停主動向其他作業(yè)終端發(fā)送lsr包或者hello包。當作業(yè)終端處于silence狀態(tài)時接收到其他終端發(fā)送的lsr包或者hello包,可以向其他終端反饋lsr包。
在可選實施例中,作業(yè)終端在2個hello包的周期內(nèi)未接收到其他作業(yè)終端發(fā)送的hello包時,可以主動向其他作業(yè)終端發(fā)送hello包。
本發(fā)明實施例中,第二作業(yè)終端向作業(yè)集群中的第一作業(yè)終端發(fā)送終端標識信息獲取請求,接收第一作業(yè)終端發(fā)送的作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的終端標識信息,根據(jù)終端標識信息,向作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端發(fā)送終端排列信息更新請求,接收作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端反饋的終端排列更新響應(yīng)信息,向作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端發(fā)送任務(wù)調(diào)度信息更新請求,根據(jù)作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的數(shù)量,獲取各個當前需要處理的任務(wù)的任務(wù)調(diào)度信息,可提高任務(wù)調(diào)度的有效性和可靠性。
請參見圖4,圖4是本發(fā)明實施例中提供的一種任務(wù)調(diào)度裝置的結(jié)構(gòu)示意圖,本發(fā)明實施例中的任務(wù)調(diào)度裝置可以包括平板電腦、手機、個人計算機、筆記本電腦、車載設(shè)備、網(wǎng)絡(luò)電視等終端,如圖所示本實施例中的任務(wù)調(diào)度裝置至少可以包括任務(wù)調(diào)度信息獲取單元401、終端排列信息獲取單元402以及任務(wù)調(diào)度單元403,其中:
任務(wù)調(diào)度信息獲取單元401,用于根據(jù)第一作業(yè)終端所屬作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的數(shù)量,獲取各個當前需要處理的任務(wù)的任務(wù)調(diào)度信息,作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端包括第一作業(yè)終端。
終端排列信息獲取單元402,用于根據(jù)作業(yè)集群中當前可用于調(diào)度任務(wù)的作 業(yè)終端的終端標識信息,獲取第一作業(yè)終端的終端排列信息。
任務(wù)調(diào)度單元403,用于調(diào)度與終端排列信息匹配的任務(wù)調(diào)度信息對應(yīng)的任務(wù)。
在可選實施例中,任務(wù)調(diào)度信息獲取單元401,具體用于:
獲取各個任務(wù)的排列序號。
獲取作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的數(shù)量。
將各個任務(wù)的排列序號對作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的數(shù)量進行取模,得到各個任務(wù)的任務(wù)調(diào)度信息。
在可選實施例中,終端排列信息獲取單元402,具體用于:
獲取作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的終端標識信息。
根據(jù)終端標識信息對作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端進行排序,得到作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的排列序號。
將第一作業(yè)終端的排列序號確定為第一作業(yè)終端的終端排列信息。
在可選實施例中,本發(fā)明實施例中的任務(wù)調(diào)度裝置還可以包括:
作業(yè)終端確定單元404,用于檢測到作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端進行更新時,將更新后的作業(yè)終端作為作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端,觸發(fā)任務(wù)調(diào)度信息獲取單元401根據(jù)作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的數(shù)量,獲取各個當前需要處理的任務(wù)的任務(wù)調(diào)度信息。
在可選實施例中,作業(yè)終端確定單元404檢測到作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端進行更新,具體用于:
接收需要加入作業(yè)集群的第二作業(yè)終端發(fā)送的針對作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的終端標識信息獲取請求。
將各個終端標識信息發(fā)送給第二作業(yè)終端,以使第二作業(yè)終端根據(jù)終端標識信息,向作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端發(fā)送終端排列信息更新請求,第二作業(yè)終端接收作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端反饋的終端排列更新響應(yīng)信息。
接收第二作業(yè)終端發(fā)送的任務(wù)調(diào)度信息更新請求。
確定作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端更新完畢。
本發(fā)明實施例中,任務(wù)調(diào)度信息獲取單元401根據(jù)第一作業(yè)終端所屬作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的數(shù)量,獲取各個當前需要處理的任務(wù) 的任務(wù)調(diào)度信息,終端排列信息獲取單元402根據(jù)作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的終端標識信息,獲取第一作業(yè)終端的終端排列信息,任務(wù)調(diào)度單元403調(diào)度與終端排列信息匹配的任務(wù)調(diào)度信息對應(yīng)的任務(wù),可提高任務(wù)調(diào)度的有效性和可靠性。
請參見圖5,圖5為本發(fā)明實施例提供的一種終端的結(jié)構(gòu)示意圖,本發(fā)明實施例提供的終端可以用于實施上述圖1或者圖3所示的本發(fā)明實施例實現(xiàn)的方法,為了便于說明,僅示出了與本發(fā)明實施例相關(guān)的部分,具體技術(shù)細節(jié)未揭示的,請參照圖1或者圖3所示的本發(fā)明實施例。
如圖5所示,該終端包括:至少一個處理器501,例如cpu,至少一個輸入裝置503,至少一個輸出裝置504,存儲器505,至少一個通信總線502。其中,通信總線502用于實現(xiàn)這些組件之間的連接通信。其中,輸入裝置503具體可以為網(wǎng)絡(luò)接口,用于與外部網(wǎng)絡(luò)進行通信。其中,輸出裝置504具體可以為網(wǎng)絡(luò)接口,用于與外部網(wǎng)絡(luò)進行通信。其中,存儲器505可能包含高速ram存儲器,也可能還包括非不穩(wěn)定的存儲器,例如至少一個磁盤存儲器,具體用于存儲任務(wù)、任務(wù)標識信息以及終端標識信息。存儲器505可選的可以包含至少一個位于遠離前述處理器501的存儲裝置。處理器501可以結(jié)合圖4所示的顏值獲取裝置。存儲器505中存儲一組程序代碼,且處理器501調(diào)用存儲器505中存儲的程序代碼,用于執(zhí)行以下操作:
處理器501根據(jù)第一作業(yè)終端所屬作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的數(shù)量,獲取各個當前需要處理的任務(wù)的任務(wù)調(diào)度信息,作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端包括第一作業(yè)終端。
處理器501根據(jù)作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的終端標識信息,獲取第一作業(yè)終端的終端排列信息。
輸入裝置503調(diào)度與終端排列信息匹配的任務(wù)調(diào)度信息對應(yīng)的任務(wù)。
在可選實施例中,處理器501根據(jù)第一作業(yè)終端所屬作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的數(shù)量,獲取當前需要處理的各個任務(wù)的任務(wù)調(diào)度信息,具體用于:
獲取各個任務(wù)的排列序號。
獲取作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的數(shù)量。
將各個任務(wù)的排列序號對作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的數(shù)量進行取模,得到各個任務(wù)的任務(wù)調(diào)度信息。
在可選實施例中,處理器501根據(jù)作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的終端標識信息,獲取第一作業(yè)終端的終端排列信息,具體用于:
獲取作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的終端標識信息。
根據(jù)終端標識信息對作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端進行排序,得到作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的排列序號。
將第一作業(yè)終端的排列序號作為第一作業(yè)終端的終端排列信息。
在可選實施例中,處理器501還可以執(zhí)行以下操作:
檢測到作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端進行更新時,將更新后的作業(yè)終端作為作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端。
執(zhí)行根據(jù)作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的數(shù)量,獲取各個當前需要處理的任務(wù)的任務(wù)調(diào)度信息的步驟。
在可選實施例中,處理器501檢測到作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端進行更新,具體用于:
接收需要加入作業(yè)集群的第二作業(yè)終端發(fā)送的針對作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端的終端標識信息獲取請求。
將各個終端標識信息發(fā)送給第二作業(yè)終端,以使第二作業(yè)終端根據(jù)終端標識信息,向作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端發(fā)送終端排列信息更新請求,第二作業(yè)終端接收作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端反饋的終端排列更新響應(yīng)信息。
接收第二作業(yè)終端發(fā)送的任務(wù)調(diào)度信息更新請求。
確定作業(yè)集群中當前可用于調(diào)度任務(wù)的作業(yè)終端更新完畢。
具體的,本發(fā)明實施例中介紹的終端可以用以實施本發(fā)明結(jié)合圖1或者圖3介紹的方法實施例中的部分或全部流程。
本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關(guān)的硬件來完成,所述的程序可存儲于計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(read-onlymemory,rom)或隨機存儲記憶體(randomaccessmemory,ram)等。
以上所揭露的僅為本發(fā)明較佳實施例而已,當然不能以此來限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。