欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

集群任務(wù)均衡調(diào)度方法、裝置、存儲(chǔ)介質(zhì)及電子設(shè)備與流程

文檔序號(hào):11176931閱讀:354來(lái)源:國(guó)知局
集群任務(wù)均衡調(diào)度方法、裝置、存儲(chǔ)介質(zhì)及電子設(shè)備與流程

本公開(kāi)涉及負(fù)載均衡技術(shù)領(lǐng)域,具體地,涉及一種集群任務(wù)均衡調(diào)度方法、裝置、存儲(chǔ)介質(zhì)及電子設(shè)備。



背景技術(shù):

目前,在數(shù)據(jù)采集(集成)業(yè)務(wù)中,經(jīng)常通過(guò)定時(shí)采集來(lái)滿足業(yè)務(wù)需要,例如以10秒、1分鐘、5分鐘、10分鐘作為定時(shí)采集頻率,數(shù)據(jù)采集程序在約定的時(shí)間點(diǎn)上開(kāi)始采集數(shù)據(jù),在業(yè)務(wù)中也稱為定時(shí)任務(wù)。

在現(xiàn)有技術(shù)中,定時(shí)任務(wù)被觸發(fā)后,所有可以執(zhí)行任務(wù)的節(jié)點(diǎn)搶占調(diào)度鎖,搶到調(diào)度鎖的節(jié)點(diǎn)將對(duì)應(yīng)的任務(wù)放在共享資源池中,例如共享的任務(wù)隊(duì)列中,定時(shí)采用競(jìng)爭(zhēng)方式獲取到鎖,其競(jìng)爭(zhēng)方式是所有節(jié)點(diǎn)搶占任務(wù)鎖,先獲取到鎖的節(jié)點(diǎn)取走該任務(wù),并執(zhí)行該任務(wù),當(dāng)執(zhí)行完該任務(wù)后,該節(jié)點(diǎn)釋放任務(wù)鎖,并再次由上述的所有節(jié)點(diǎn)通過(guò)競(jìng)爭(zhēng)方式獲取任務(wù)鎖,以此反復(fù)執(zhí)行。

可見(jiàn),上述方式是由多個(gè)節(jié)點(diǎn)通過(guò)競(jìng)爭(zhēng)方式來(lái)執(zhí)行任務(wù),因此任務(wù)的分配是不均衡的,并且采用競(jìng)爭(zhēng)任務(wù)鎖的方式,參與競(jìng)爭(zhēng)的節(jié)點(diǎn)越多時(shí),任務(wù)鎖的開(kāi)銷也越大,會(huì)增大系統(tǒng)負(fù)擔(dān)。



技術(shù)實(shí)現(xiàn)要素:

本公開(kāi)的目的是提供一種集群任務(wù)均衡調(diào)度方法、裝置、存儲(chǔ)介質(zhì)及電子設(shè)備,用于解決任務(wù)分配不均衡,以及任務(wù)鎖開(kāi)銷大的問(wèn)題。

為了實(shí)現(xiàn)上述目的,第一方面,本公開(kāi)提供一種群任務(wù)均衡調(diào)度方法,應(yīng)用于集群中的任一節(jié)點(diǎn),所述方法包括:

當(dāng)監(jiān)聽(tīng)到第一調(diào)度到達(dá)約定的時(shí)間點(diǎn)時(shí),搶占調(diào)度鎖;

在成功搶占所述調(diào)度鎖后,將所述第一調(diào)度對(duì)應(yīng)的待分配任務(wù)按照預(yù)設(shè)的任務(wù)分配規(guī)則分配給所述集群中的每個(gè)節(jié)點(diǎn);

通知所述集群中的其他節(jié)點(diǎn)執(zhí)行分配的任務(wù)。

可選的,所述將所述第一調(diào)度對(duì)應(yīng)的待分配任務(wù)按照預(yù)設(shè)的任務(wù)分配規(guī)則分配給所述集群中的每個(gè)節(jié)點(diǎn),包括:

將所述第一調(diào)度對(duì)應(yīng)的所有待分配任務(wù)按照平均分配原則分配給所述集群中的每個(gè)節(jié)點(diǎn);

將分配給所述每個(gè)節(jié)點(diǎn)的待分配任務(wù)添加到所述每個(gè)節(jié)點(diǎn)的任務(wù)隊(duì)列中,其中,所述每個(gè)節(jié)點(diǎn)對(duì)應(yīng)一個(gè)任務(wù)隊(duì)列。

可選的,所述將所述第一調(diào)度對(duì)應(yīng)的待分配任務(wù)按照預(yù)設(shè)的任務(wù)分配規(guī)則分配給所述集群中的每個(gè)節(jié)點(diǎn),包括:

獲取所述集群中的所有節(jié)點(diǎn)的任務(wù)隊(duì)列信息,任務(wù)隊(duì)列信息中包括所述集群中的每個(gè)節(jié)點(diǎn)的任務(wù)隊(duì)列中當(dāng)前存在的已分配任務(wù);其中,所述每個(gè)節(jié)點(diǎn)對(duì)應(yīng)一個(gè)任務(wù)隊(duì)列;

確定所述每個(gè)節(jié)點(diǎn)的任務(wù)隊(duì)列中每個(gè)所述已分配任務(wù)所需的任務(wù)耗時(shí);

根據(jù)每個(gè)所述已分配任務(wù)所需的任務(wù)耗時(shí),確定所述所有節(jié)點(diǎn)的剩余執(zhí)行總時(shí)間,以及所述每個(gè)節(jié)點(diǎn)的剩余執(zhí)行時(shí)間,所述剩余執(zhí)行總時(shí)間為所述所有節(jié)點(diǎn)將所有所述已分配任務(wù)執(zhí)行完所需的總時(shí)間,所述每個(gè)節(jié)點(diǎn)的剩余執(zhí)行時(shí)間為所述每個(gè)節(jié)點(diǎn)將自己的任務(wù)隊(duì)列中的所有所述已分配任務(wù)執(zhí)行完所需的時(shí)間;

確定所述第一調(diào)度對(duì)應(yīng)的所有待分配任務(wù)中的每個(gè)待分配任務(wù)所需的任務(wù)耗時(shí);

根據(jù)所述每個(gè)待分配任務(wù)所需的任務(wù)耗時(shí),確定所述所有待分配任務(wù)的總耗時(shí);

根據(jù)所述剩余執(zhí)行總時(shí)間,以及所述所有待分配任務(wù)的總耗時(shí)確定所述所有節(jié)點(diǎn)執(zhí)行任務(wù)所需的總時(shí)間;

根據(jù)所述總時(shí)間和所述集群的節(jié)點(diǎn)數(shù)量確定為所述每個(gè)節(jié)點(diǎn)分配的任務(wù)時(shí)間;

根據(jù)為所述每個(gè)節(jié)點(diǎn)分配的任務(wù)時(shí)間、所述每個(gè)節(jié)點(diǎn)的剩余執(zhí)行時(shí)間以及所述每個(gè)待分配任務(wù)所需的任務(wù)耗時(shí)為所述每個(gè)節(jié)點(diǎn)分配待分配任務(wù);

將分配給所述每個(gè)節(jié)點(diǎn)的待分配任務(wù)添加到所述每個(gè)節(jié)點(diǎn)的任務(wù)隊(duì)列中。

可選的,所述確定所述每個(gè)節(jié)點(diǎn)的任務(wù)隊(duì)列中每個(gè)所述已分配任務(wù)所需的任務(wù)耗時(shí),包括:

當(dāng)?shù)谝蝗蝿?wù)曾經(jīng)執(zhí)行過(guò)的次數(shù)m大于或等于n時(shí),獲取所述第一任務(wù)在前n次執(zhí)行時(shí)的平均任務(wù)耗時(shí)作為所述第一任務(wù)所需的任務(wù)耗時(shí),所述第一任務(wù)為所述集群中的任一節(jié)點(diǎn)的任務(wù)隊(duì)列中的任一所述已分配任務(wù);

當(dāng)所述第一任務(wù)曾經(jīng)執(zhí)行過(guò)的次數(shù)m小于n時(shí),則獲取所述第一任務(wù)在前m次執(zhí)行時(shí)的平均任務(wù)耗時(shí)作為所述第一任務(wù)所需的任務(wù)耗時(shí);

當(dāng)所述第一任務(wù)未執(zhí)行過(guò)時(shí),獲取預(yù)先設(shè)定的默認(rèn)任務(wù)耗時(shí)作為所述第一任務(wù)所需的任務(wù)耗時(shí)。

可選的,所述確定所述第一調(diào)度對(duì)應(yīng)的所有待分配任務(wù)中的每個(gè)待分配任務(wù)所需的任務(wù)耗時(shí),包括:

當(dāng)?shù)诙蝿?wù)曾經(jīng)執(zhí)行過(guò)的次數(shù)m大于或等于n時(shí),獲取所述第二任務(wù)在前n次執(zhí)行時(shí)的平均任務(wù)耗時(shí)作為所述第二任務(wù)所需的任務(wù)耗時(shí),所述第二任務(wù)為所述第一調(diào)度對(duì)應(yīng)的所有待分配任務(wù)中的任一待分配任務(wù);

當(dāng)所述第二任務(wù)曾經(jīng)執(zhí)行過(guò)的次數(shù)m小于n時(shí),則獲取所述第二任務(wù)在前m次執(zhí)行時(shí)的平均任務(wù)耗時(shí)作為所述第二任務(wù)所需的任務(wù)耗時(shí);

當(dāng)所述第二任務(wù)未執(zhí)行過(guò)時(shí),獲取預(yù)先設(shè)定的默認(rèn)任務(wù)耗時(shí)作為所述第二任務(wù)所需的任務(wù)耗時(shí),或者,當(dāng)所述第二任務(wù)未執(zhí)行過(guò)時(shí),將所述第二任務(wù)按照平均分配原則分配給所述集群中的任一節(jié)點(diǎn)。

可選的,所述根據(jù)為所述每個(gè)節(jié)點(diǎn)分配的任務(wù)時(shí)間、所述每個(gè)節(jié)點(diǎn)的剩余執(zhí)行時(shí)間以及所述每個(gè)待分配任務(wù)所需的任務(wù)耗時(shí)為所述每個(gè)節(jié)點(diǎn)分配待分配任務(wù),包括:

將為第一節(jié)點(diǎn)分配的任務(wù)時(shí)間減去所述第一節(jié)點(diǎn)的剩余執(zhí)行時(shí)間,得到所述第一節(jié)點(diǎn)的待分配任務(wù)時(shí)間,所述第一節(jié)點(diǎn)為所述集群中任一節(jié)點(diǎn);

根據(jù)所述每個(gè)待分配任務(wù)所需的任務(wù)耗時(shí),確定為所述第一節(jié)點(diǎn)分配的待分配任務(wù),使得所述第一節(jié)點(diǎn)分配的所有待分配任務(wù)所需的任務(wù)耗時(shí)之和與所述第一節(jié)點(diǎn)的待分配任務(wù)時(shí)間匹配。

第二方面,本公開(kāi)還提供一種群任務(wù)均衡調(diào)度裝置,應(yīng)用于集群中的任一節(jié)點(diǎn),所述裝置包括:

調(diào)度監(jiān)聽(tīng)模塊,用于當(dāng)監(jiān)聽(tīng)到第一調(diào)度到達(dá)約定的時(shí)間點(diǎn)時(shí),搶占調(diào)度鎖;

任務(wù)分配模塊,用于在成功搶占所述調(diào)度鎖后,將所述第一調(diào)度對(duì)應(yīng)的待分配任務(wù)按照預(yù)設(shè)的任務(wù)分配規(guī)則分配給所述集群中的每個(gè)節(jié)點(diǎn);

任務(wù)通知模塊,用于通知所述集群中的其他節(jié)點(diǎn)執(zhí)行分配的任務(wù)。

可選的,所述任務(wù)分配模塊,包括:

第一分配子模塊,用于將所述第一調(diào)度對(duì)應(yīng)的所有待分配任務(wù)按照平均分配原則分配給所述集群中的每個(gè)節(jié)點(diǎn);

隊(duì)列管理子模塊,用于將分配給所述每個(gè)節(jié)點(diǎn)的待分配任務(wù)添加到所述每個(gè)節(jié)點(diǎn)的任務(wù)隊(duì)列中,其中,所述每個(gè)節(jié)點(diǎn)對(duì)應(yīng)一個(gè)任務(wù)隊(duì)列。

可選的,所述任務(wù)分配模塊,包括:

隊(duì)列信息獲取子模塊,用于獲取所述集群中的所有節(jié)點(diǎn)的任務(wù)隊(duì)列信息,任務(wù)隊(duì)列信息中包括所述集群中的每個(gè)節(jié)點(diǎn)的任務(wù)隊(duì)列中當(dāng)前存在的已分配任務(wù);其中,所述每個(gè)節(jié)點(diǎn)對(duì)應(yīng)一個(gè)任務(wù)隊(duì)列;

任務(wù)耗時(shí)第一確定子模塊,用于確定所述每個(gè)節(jié)點(diǎn)的任務(wù)隊(duì)列中每個(gè)所述已分配任務(wù)所需的任務(wù)耗時(shí);

剩余時(shí)間確定子模塊,用于根據(jù)每個(gè)所述已分配任務(wù)所需的任務(wù)耗時(shí),確定所述所有節(jié)點(diǎn)的剩余執(zhí)行總時(shí)間,以及所述每個(gè)節(jié)點(diǎn)的剩余執(zhí)行時(shí)間,所述剩余執(zhí)行總時(shí)間為所述所有節(jié)點(diǎn)將所有所述已分配任務(wù)執(zhí)行完所需的總時(shí)間,所述每個(gè)節(jié)點(diǎn)的剩余執(zhí)行時(shí)間為所述每個(gè)節(jié)點(diǎn)將自己的任務(wù)隊(duì)列中的所有所述已分配任務(wù)執(zhí)行完所需的時(shí)間;

任務(wù)耗時(shí)第二確定子模塊,用于確定所述第一調(diào)度對(duì)應(yīng)的所有待分配任務(wù)中的每個(gè)待分配任務(wù)所需的任務(wù)耗時(shí);

任務(wù)總耗時(shí)確定子模塊,用于根據(jù)所述每個(gè)待分配任務(wù)所需的任務(wù)耗時(shí),確定所述所有待分配任務(wù)的總耗時(shí);

節(jié)點(diǎn)總時(shí)間確定模塊,用于根據(jù)所述剩余執(zhí)行總時(shí)間,以及所述所有待分配任務(wù)的總耗時(shí)確定所述所有節(jié)點(diǎn)執(zhí)行任務(wù)所需的總時(shí)間;

節(jié)點(diǎn)任務(wù)時(shí)間分配子模塊,用于根據(jù)所述總時(shí)間和所述集群的節(jié)點(diǎn)數(shù)量確定為所述每個(gè)節(jié)點(diǎn)分配的任務(wù)時(shí)間;

第二分配子模塊,用于根據(jù)為所述每個(gè)節(jié)點(diǎn)分配的任務(wù)時(shí)間、所述每個(gè)節(jié)點(diǎn)的剩余執(zhí)行時(shí)間以及所述每個(gè)待分配任務(wù)所需的任務(wù)耗時(shí)為所述每個(gè)節(jié)點(diǎn)分配待分配任務(wù);

隊(duì)列管理子模塊,用于將分配給所述每個(gè)節(jié)點(diǎn)的待分配任務(wù)添加到所述每個(gè)節(jié)點(diǎn)的任務(wù)隊(duì)列中。

可選的,所述任務(wù)耗時(shí)第一確定子模塊,用于:

當(dāng)?shù)谝蝗蝿?wù)曾經(jīng)執(zhí)行過(guò)的次數(shù)m大于或等于n時(shí),獲取所述第一任務(wù)在前n次執(zhí)行時(shí)的平均任務(wù)耗時(shí)作為所述第一任務(wù)所需的任務(wù)耗時(shí),所述第一任務(wù)為所述集群中的任一節(jié)點(diǎn)的任務(wù)隊(duì)列中的任一所述已分配任務(wù);

當(dāng)所述第一任務(wù)曾經(jīng)執(zhí)行過(guò)的次數(shù)m小于n時(shí),則獲取所述第一任務(wù)在前m次執(zhí)行時(shí)的平均任務(wù)耗時(shí)作為所述第一任務(wù)所需的任務(wù)耗時(shí);

當(dāng)所述第一任務(wù)未執(zhí)行過(guò)時(shí),獲取預(yù)先設(shè)定的默認(rèn)任務(wù)耗時(shí)作為所述第一任務(wù)所需的任務(wù)耗時(shí)。

可選的,任務(wù)耗時(shí)第二確定子模塊,用于:

當(dāng)?shù)诙蝿?wù)曾經(jīng)執(zhí)行過(guò)的次數(shù)m大于或等于n時(shí),獲取所述第二任務(wù)在前n次執(zhí)行時(shí)的平均任務(wù)耗時(shí)作為所述第二任務(wù)所需的任務(wù)耗時(shí),所述第二任務(wù)為所述第一調(diào)度對(duì)應(yīng)的所有待分配任務(wù)中的任一待分配任務(wù);

當(dāng)所述第二任務(wù)曾經(jīng)執(zhí)行過(guò)的次數(shù)m小于n時(shí),則獲取所述第二任務(wù)在前m次執(zhí)行時(shí)的平均任務(wù)耗時(shí)作為所述第二任務(wù)所需的任務(wù)耗時(shí);

當(dāng)所述第二任務(wù)未執(zhí)行過(guò)時(shí),獲取預(yù)先設(shè)定的默認(rèn)任務(wù)耗時(shí)作為所述第二任務(wù)所需的任務(wù)耗時(shí),或者,當(dāng)所述第二任務(wù)未執(zhí)行過(guò)時(shí),將所述第二任務(wù)按照平均分配原則分配給所述集群中的任一節(jié)點(diǎn)。

可選的,所述第二分配子模塊,用于:

將為第一節(jié)點(diǎn)分配的任務(wù)時(shí)間減去所述第一節(jié)點(diǎn)的剩余執(zhí)行時(shí)間,得到所述第一節(jié)點(diǎn)的待分配任務(wù)時(shí)間,所述第一節(jié)點(diǎn)為所述集群中任一節(jié)點(diǎn);

根據(jù)所述每個(gè)待分配任務(wù)所需的任務(wù)耗時(shí),確定為所述第一節(jié)點(diǎn)分配的待分配任務(wù),使得所述第一節(jié)點(diǎn)分配的所有待分配任務(wù)所需的任務(wù)耗時(shí)之和與所述第一節(jié)點(diǎn)的待分配任務(wù)時(shí)間匹配。

第三方面,本公開(kāi)還提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)第一方面中所述方法的步驟。

第四方面,一種電子設(shè)備,包括:第三方面中所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì);以及一個(gè)或者多個(gè)處理器,用于執(zhí)行所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中的計(jì)算機(jī)程序。

本公開(kāi)提供的集群任務(wù)均衡調(diào)度方法、裝置、存儲(chǔ)介質(zhì)及電子設(shè)備,當(dāng)監(jiān)聽(tīng)到第一調(diào)度到達(dá)約定的時(shí)間點(diǎn)時(shí),集群中的各個(gè)節(jié)點(diǎn)搶占調(diào)度鎖,在成功搶占所述調(diào)度鎖后,搶占調(diào)度鎖的節(jié)點(diǎn)將所述第一調(diào)度對(duì)應(yīng)的待分配任務(wù)按照預(yù)設(shè)的任務(wù)分配規(guī)則分配給所述集群中的每個(gè)節(jié)點(diǎn),通知所述集群中的其他節(jié)點(diǎn)執(zhí)行分配的任務(wù)。通過(guò)上述技術(shù)方案,執(zhí)行任務(wù)的節(jié)點(diǎn)不再競(jìng)爭(zhēng)任務(wù)鎖,而是在任一個(gè)節(jié)點(diǎn)搶占調(diào)度鎖之后,將當(dāng)前達(dá)約定的時(shí)間點(diǎn)第一調(diào)度對(duì)應(yīng)的待分配任務(wù)按照預(yù)設(shè)的任務(wù)分配規(guī)則分配給集群中的每個(gè)節(jié)點(diǎn),由各個(gè)節(jié)點(diǎn)一起來(lái)執(zhí)行任務(wù),從而能夠解決任務(wù)分配不均衡,以及任務(wù)鎖開(kāi)銷大的問(wèn)題,達(dá)到使得任務(wù)分配更均衡,降低系統(tǒng)負(fù)擔(dān)的效果。

本公開(kāi)的其他特征和優(yōu)點(diǎn)將在隨后的具體實(shí)施方式部分予以詳細(xì)說(shuō)明。

附圖說(shuō)明

附圖是用來(lái)提供對(duì)本公開(kāi)的進(jìn)一步理解,并且構(gòu)成說(shuō)明書(shū)的一部分,與下面的具體實(shí)施方式一起用于解釋本公開(kāi),但并不構(gòu)成對(duì)本公開(kāi)的限制。在附圖中:

圖1是根據(jù)一示例性實(shí)施例示出的一種集群任務(wù)均衡調(diào)度方法;

圖2是根據(jù)圖1所示實(shí)施例示出的一種任務(wù)分配方法;

圖3是根據(jù)圖1所示實(shí)施例示出的另一種任務(wù)分配方法;

圖4是根據(jù)一示例性實(shí)施例示出的一種集群任務(wù)均衡調(diào)度裝置的框圖;

圖5是根據(jù)圖4所示實(shí)施例示出的一種任務(wù)分配模塊的框圖;

圖6是根據(jù)圖4所示實(shí)施例示出的另一種任務(wù)分配模塊的框圖;

圖7是根據(jù)一示例性實(shí)施例示出的一種電子設(shè)備的框圖;

圖8是根據(jù)一示例性實(shí)施例示出的另一種電子設(shè)備的框圖。

具體實(shí)施方式

以下結(jié)合附圖對(duì)本公開(kāi)的具體實(shí)施方式進(jìn)行詳細(xì)說(shuō)明。應(yīng)當(dāng)理解的是,此處所描述的具體實(shí)施方式僅用于說(shuō)明和解釋本公開(kāi),并不用于限制本公開(kāi)。

圖1是根據(jù)一示例性實(shí)施例示出的一種集群任務(wù)均衡調(diào)度方法,如圖1所示,該方法應(yīng)用于集群中的任一節(jié)點(diǎn),該方法包括:

步驟101,當(dāng)監(jiān)聽(tīng)到第一調(diào)度到達(dá)約定的時(shí)間點(diǎn)時(shí),搶占調(diào)度鎖。

示例的,調(diào)度相當(dāng)于一系列定時(shí)任務(wù)的集合,調(diào)度在到達(dá)定時(shí)點(diǎn)時(shí)會(huì)觸發(fā)一系列的任務(wù),在一個(gè)集群的調(diào)度隊(duì)列中,可以包括一個(gè)或者多個(gè)調(diào)度,所有執(zhí)行任務(wù)的節(jié)點(diǎn)都會(huì)監(jiān)聽(tīng)調(diào)度隊(duì)列中的調(diào)度的定時(shí)。當(dāng)監(jiān)聽(tīng)到調(diào)度隊(duì)列中的某一個(gè)調(diào)度到達(dá)約定時(shí)間點(diǎn)時(shí),所有執(zhí)行任務(wù)的節(jié)點(diǎn)通過(guò)競(jìng)爭(zhēng)方式搶占調(diào)度鎖。

步驟102,在成功搶占調(diào)度鎖后,將第一調(diào)度對(duì)應(yīng)的待分配任務(wù)按照預(yù)設(shè)的任務(wù)分配規(guī)則分配給集群中的每個(gè)節(jié)點(diǎn)。

示例的,在本實(shí)施例中,執(zhí)行任務(wù)的節(jié)點(diǎn)在成功搶占調(diào)度鎖后,不再監(jiān)聽(tīng)任務(wù)的定時(shí),也不再競(jìng)爭(zhēng)任務(wù)鎖,而是由搶占了調(diào)度鎖的節(jié)點(diǎn)將該調(diào)度所有的待分配任務(wù)按照預(yù)設(shè)的任務(wù)分配規(guī)則分配給包括該節(jié)點(diǎn)在內(nèi)的集群中的每個(gè)節(jié)點(diǎn)。該任務(wù)分配規(guī)則可以是平均分配,也可以是根據(jù)各個(gè)節(jié)點(diǎn)的負(fù)載按需分配。

步驟103,通知集群中的其他節(jié)點(diǎn)執(zhí)行分配的任務(wù)。

由于,各個(gè)執(zhí)行任務(wù)的節(jié)點(diǎn),不再監(jiān)聽(tīng)任務(wù)的定時(shí),因此在搶占了調(diào)度鎖的節(jié)點(diǎn)將該調(diào)度所有的任務(wù)分配給集群中的每個(gè)節(jié)點(diǎn)之后,還需要由該搶占了調(diào)度鎖的節(jié)點(diǎn)通知集群中的其他節(jié)點(diǎn),以便激活其他各個(gè)節(jié)點(diǎn)的工作線程,使得各個(gè)節(jié)點(diǎn)執(zhí)行剛分配的任務(wù)。

其中,需要說(shuō)明的是,在本實(shí)施例中,集群中的每個(gè)節(jié)點(diǎn)都對(duì)應(yīng)一個(gè)任務(wù)隊(duì)列,搶占了調(diào)度鎖的節(jié)點(diǎn)可以將為各個(gè)節(jié)點(diǎn)分配的任務(wù)添加到各個(gè)節(jié)點(diǎn)對(duì)應(yīng)的任務(wù)隊(duì)列中。由此可見(jiàn),各個(gè)節(jié)點(diǎn)不再共用一個(gè)任務(wù)隊(duì)列,也不必再通過(guò)競(jìng)爭(zhēng)的方式執(zhí)行任務(wù),從而使得任務(wù)的分配更加均衡。

本公開(kāi)提供的集群任務(wù)均衡調(diào)度方法,當(dāng)監(jiān)聽(tīng)到第一調(diào)度到達(dá)約定的時(shí)間點(diǎn)時(shí),集群中的各個(gè)節(jié)點(diǎn)搶占調(diào)度鎖,在成功搶占所述調(diào)度鎖后,搶占調(diào)度鎖的節(jié)點(diǎn)將第一調(diào)度對(duì)應(yīng)的待分配任務(wù)按照預(yù)設(shè)的任務(wù)分配規(guī)則分配給集群中的每個(gè)節(jié)點(diǎn),通知集群中的其他節(jié)點(diǎn)執(zhí)行分配的任務(wù)。通過(guò)上述技術(shù)方案,執(zhí)行任務(wù)的節(jié)點(diǎn)不再競(jìng)爭(zhēng)任務(wù)鎖,而是在任一個(gè)節(jié)點(diǎn)搶占調(diào)度鎖之后,將當(dāng)前到達(dá)約定的時(shí)間點(diǎn)第一調(diào)度對(duì)應(yīng)的待分配任務(wù)按照預(yù)設(shè)的任務(wù)分配規(guī)則分配給集群中的每個(gè)節(jié)點(diǎn),由各個(gè)節(jié)點(diǎn)一起來(lái)執(zhí)行任務(wù),從而能夠解決任務(wù)分配不均衡,以及任務(wù)鎖開(kāi)銷大的問(wèn)題,達(dá)到使得任務(wù)分配更均衡,降低系統(tǒng)負(fù)擔(dān)的效果。

圖2是根據(jù)圖1所示實(shí)施例示出的一種任務(wù)分配方法,如圖2所示,上述的步驟102中所述的在成功搶占所述調(diào)度鎖后,將第一調(diào)度對(duì)應(yīng)的待分配任務(wù)按照預(yù)設(shè)的任務(wù)分配規(guī)則分配給集群中的每個(gè)節(jié)點(diǎn),可以包括以下步驟:

步驟1021a,將第一調(diào)度對(duì)應(yīng)的所有待分配任務(wù)按照平均分配原則分配給集群中的每個(gè)節(jié)點(diǎn)。

示例性的,平均分配原則可以是將第一調(diào)度對(duì)應(yīng)的所有待分配任務(wù)的總數(shù)除以集群中的節(jié)點(diǎn)總數(shù),計(jì)算出每個(gè)節(jié)點(diǎn)應(yīng)分配的任務(wù)數(shù),然后按照該任務(wù)數(shù)為每個(gè)節(jié)點(diǎn)分配任務(wù)?;蛘?,可以采用加權(quán)平均的方式,例如,可以將處理能力較強(qiáng)的節(jié)點(diǎn)的權(quán)重設(shè)置的高一些,將處理能力較弱的節(jié)點(diǎn)的權(quán)重設(shè)置的低一些,從而可以根據(jù)所有待分配任務(wù)的總數(shù),以及各個(gè)節(jié)點(diǎn)的權(quán)重為每個(gè)節(jié)點(diǎn)分配任務(wù)。

步驟1022a,將分配給每個(gè)節(jié)點(diǎn)的待分配任務(wù)添加到每個(gè)節(jié)點(diǎn)的任務(wù)隊(duì)列中,其中,每個(gè)節(jié)點(diǎn)對(duì)應(yīng)一個(gè)任務(wù)隊(duì)列。

圖3是根據(jù)圖1所示實(shí)施例示出的另一種任務(wù)分配方法,如圖3所示,考慮到執(zhí)行任務(wù)的各個(gè)節(jié)點(diǎn)的任務(wù)隊(duì)列中可能還有上一次分配的任務(wù)沒(méi)有執(zhí)行完,每個(gè)節(jié)點(diǎn)剩余的已分配任務(wù)的數(shù)量不同,并且還考慮到無(wú)論是已分配任務(wù),還是即將分配的新任務(wù),每個(gè)任務(wù)所消耗的時(shí)間可能也不同,因此基于上述幾點(diǎn)因素的考慮,上述的步驟102中的在成功搶占所述調(diào)度鎖后,將第一調(diào)度對(duì)應(yīng)的待分配任務(wù)按照預(yù)設(shè)的任務(wù)分配規(guī)則分配給集群中的每個(gè)節(jié)點(diǎn),可以包括以下步驟:

步驟1021b,獲取集群中的所有節(jié)點(diǎn)的任務(wù)隊(duì)列信息,任務(wù)隊(duì)列信息中包括集群中的每個(gè)節(jié)點(diǎn)的任務(wù)隊(duì)列中當(dāng)前存在的已分配任務(wù);其中,每個(gè)節(jié)點(diǎn)對(duì)應(yīng)一個(gè)任務(wù)隊(duì)列。

在本實(shí)施例中,已分配任務(wù)可以理解為上一次分配任務(wù)時(shí)分配的任務(wù),待分配任務(wù)是指第一調(diào)度對(duì)應(yīng)的任務(wù),即將分配給各個(gè)節(jié)點(diǎn)但還未分配。由于任務(wù)的執(zhí)行時(shí)按照分配先后的順序執(zhí)行的,并且由于節(jié)點(diǎn)在執(zhí)行任務(wù)時(shí)需要消耗一定的時(shí)間,沒(méi)有執(zhí)行的任務(wù)會(huì)暫時(shí)停留在任務(wù)隊(duì)列中,等待上一個(gè)任務(wù)執(zhí)行完畢后才可以執(zhí)行,因此當(dāng)節(jié)點(diǎn)的執(zhí)行速度趕不上任務(wù)的分配速度的情況下,當(dāng)分配任務(wù)時(shí)就可能存在上一次分配的任務(wù)。因此,在每次為節(jié)點(diǎn)分配任務(wù)時(shí),也需要考慮這些已分配任務(wù)的耗時(shí)需求。

步驟1022b,確定每個(gè)節(jié)點(diǎn)的任務(wù)隊(duì)列中每個(gè)已分配任務(wù)所需的任務(wù)耗時(shí)。

示例的,上述步驟1022b可以包括以下三種情況:

當(dāng)?shù)谝蝗蝿?wù)曾經(jīng)執(zhí)行過(guò)的次數(shù)m大于或等于n時(shí),獲取第一任務(wù)在前n次執(zhí)行時(shí)的平均任務(wù)耗時(shí)作為第一任務(wù)所需的任務(wù)耗時(shí),第一任務(wù)為集群中的任一節(jié)點(diǎn)的任務(wù)隊(duì)列中的任一已分配任務(wù);

當(dāng)?shù)谝蝗蝿?wù)曾經(jīng)執(zhí)行過(guò)的次數(shù)m小于n時(shí),則獲取第一任務(wù)在前m次執(zhí)行時(shí)的平均任務(wù)耗時(shí)作為第一任務(wù)所需的任務(wù)耗時(shí);

當(dāng)?shù)谝蝗蝿?wù)未執(zhí)行過(guò)時(shí),獲取預(yù)先設(shè)定的默認(rèn)任務(wù)耗時(shí)作為第一任務(wù)所需的任務(wù)耗時(shí)。

示例的,n可以取3,即當(dāng)?shù)谝蝗蝿?wù)曾經(jīng)執(zhí)行過(guò),且執(zhí)行過(guò)的次數(shù)大于3時(shí),則將該第一任務(wù)在最近3次執(zhí)行時(shí)所花費(fèi)的時(shí)間取平均值,作為本次預(yù)測(cè)的第一任務(wù)所需的任務(wù)耗時(shí),當(dāng)?shù)谝蝗蝿?wù)曾經(jīng)執(zhí)行的次數(shù)不滿3次,則執(zhí)行過(guò)幾次,就取這幾次所花費(fèi)的時(shí)間取平均值作為本次預(yù)測(cè)的第一任務(wù)所需的任務(wù)耗時(shí),如果之前沒(méi)有執(zhí)行過(guò),那就用預(yù)設(shè)的默認(rèn)任務(wù)耗時(shí)作為其任務(wù)耗時(shí)。

步驟1023b,根據(jù)每個(gè)已分配任務(wù)所需的任務(wù)耗時(shí),確定所有節(jié)點(diǎn)的剩余執(zhí)行總時(shí)間,以及每個(gè)節(jié)點(diǎn)的剩余執(zhí)行時(shí)間,剩余執(zhí)行總時(shí)間為所有節(jié)點(diǎn)將所有已分配任務(wù)執(zhí)行完所需的總時(shí)間,每個(gè)節(jié)點(diǎn)的剩余執(zhí)行時(shí)間為每個(gè)節(jié)點(diǎn)將自己的任務(wù)隊(duì)列中的所有已分配任務(wù)執(zhí)行完所需的時(shí)間。

示例的,假設(shè)集群中存在節(jié)點(diǎn)a、節(jié)點(diǎn)b、節(jié)點(diǎn)c和節(jié)點(diǎn)d共4個(gè)節(jié)點(diǎn),其中節(jié)點(diǎn)a的任務(wù)隊(duì)列中存在的已分配任務(wù)為任務(wù)1、任務(wù)2,節(jié)點(diǎn)b的任務(wù)隊(duì)列中存在的已分配任務(wù)為任務(wù)3、任務(wù)4和任務(wù)5,節(jié)點(diǎn)c任務(wù)隊(duì)列中不存在已分配任務(wù),節(jié)點(diǎn)d的任務(wù)隊(duì)列中存在的已分配任務(wù)為任務(wù)6。則,所有節(jié)點(diǎn)的剩余執(zhí)行總時(shí)間等于任務(wù)1、任務(wù)2、任務(wù)3、任務(wù)4、任務(wù)5以及任務(wù)6的任務(wù)耗時(shí)之和,節(jié)點(diǎn)a的剩余執(zhí)行時(shí)間等于任務(wù)1、任務(wù)2的任務(wù)耗時(shí)之和,節(jié)點(diǎn)b的剩余執(zhí)行時(shí)間等于任務(wù)3、任務(wù)4和任務(wù)5的任務(wù)耗時(shí)之和,節(jié)點(diǎn)c的剩余執(zhí)行時(shí)間為零,節(jié)點(diǎn)4的剩余執(zhí)行時(shí)間即任務(wù)6的任務(wù)耗時(shí)。

步驟1024b,確定第一調(diào)度對(duì)應(yīng)的所有待分配任務(wù)中的每個(gè)待分配任務(wù)所需的任務(wù)耗時(shí)。

示例的,與步驟1022b同理,上述步驟1024b可以包括以下三種情況:

當(dāng)?shù)诙蝿?wù)曾經(jīng)執(zhí)行過(guò)的次數(shù)m大于或等于n時(shí),獲取第一任務(wù)在前n次執(zhí)行時(shí)的平均任務(wù)耗時(shí)作為第二任務(wù)所需的任務(wù)耗時(shí),該第二任務(wù)為第一調(diào)度對(duì)應(yīng)的所有待分配任務(wù)中的任一任務(wù);

當(dāng)?shù)诙蝿?wù)曾經(jīng)執(zhí)行過(guò)的次數(shù)m小于n時(shí),則獲取第一任務(wù)在前m次執(zhí)行時(shí)的平均任務(wù)耗時(shí)作為第二任務(wù)所需的任務(wù)耗時(shí);

當(dāng)?shù)诙蝿?wù)未執(zhí)行過(guò)時(shí),獲取預(yù)先設(shè)定的默認(rèn)任務(wù)耗時(shí)作為第一任務(wù)所需的任務(wù)耗時(shí)。

示例的,n可以取3,即當(dāng)?shù)诙蝿?wù)曾經(jīng)執(zhí)行過(guò),且執(zhí)行過(guò)的次數(shù)大于3時(shí),則將該第二任務(wù)在最近3次執(zhí)行時(shí)所花費(fèi)的時(shí)間取平均值,作為本次預(yù)測(cè)的第二任務(wù)所需的任務(wù)耗時(shí),當(dāng)?shù)诙蝿?wù)曾經(jīng)執(zhí)行的次數(shù)不滿3次,則執(zhí)行過(guò)幾次,就取這幾次所花費(fèi)的時(shí)間取平均值作為本次預(yù)測(cè)的第二任務(wù)所需的任務(wù)耗時(shí),如果之前沒(méi)有執(zhí)行過(guò),那就用預(yù)設(shè)的默認(rèn)任務(wù)耗時(shí)作為其任務(wù)耗時(shí)。

另外,在另一種實(shí)現(xiàn)方式中,當(dāng)該第二任務(wù)未執(zhí)行過(guò)時(shí),將該第二任務(wù)按照平均分配原則分配給所述集群中的任一節(jié)點(diǎn)。即可以理解為:將第一調(diào)度對(duì)應(yīng)的所有待分配任務(wù)按照已執(zhí)行過(guò)的和未執(zhí)行過(guò)的兩類進(jìn)行不同的處理,其中對(duì)于已執(zhí)行過(guò)的待分配任務(wù),由于可以參照之前執(zhí)行時(shí)的任務(wù)耗時(shí),因此可以按照前述方法計(jì)算出該待分配任務(wù)前幾次執(zhí)行時(shí)的平均任務(wù)耗時(shí)作為本次任務(wù)分配時(shí)該待分配任務(wù)所需的任務(wù)耗時(shí);對(duì)于未執(zhí)行過(guò)的待分配任務(wù),由于沒(méi)有可供參考的歷史耗時(shí),因此可以將這些未執(zhí)行過(guò)的待分配任務(wù)按照平均分配原則分配給集群中的各個(gè)節(jié)點(diǎn),其中平均分配原則可以參照?qǐng)D2所示的方法,不再贅述。

步驟1025b,根據(jù)每個(gè)待分配任務(wù)所需的任務(wù)耗時(shí),確定所有待分配任務(wù)的總耗時(shí)。

示例的,假設(shè)第一調(diào)度對(duì)應(yīng)的待分配任務(wù)為任務(wù)6~任務(wù)15,則先獲取任務(wù)6~任務(wù)15中每個(gè)任務(wù)所需的任務(wù)耗時(shí),再計(jì)算任務(wù)6~任務(wù)15的任務(wù)耗時(shí)之和,即為該總耗時(shí)。

步驟1026b,根據(jù)剩余執(zhí)行總時(shí)間,以及所有待分配任務(wù)的總耗時(shí)確定所有節(jié)點(diǎn)執(zhí)行任務(wù)所需的總時(shí)間。

其中,可以將步驟1023b中計(jì)算出的剩余執(zhí)行總時(shí)間記為lv,可以將步驟1025b中計(jì)算出的所有待分配任務(wù)的總耗時(shí)記為wv,則所有節(jié)點(diǎn)執(zhí)行任務(wù)所需的總時(shí)間ttotal=lv+wv。即所有節(jié)點(diǎn)執(zhí)行任務(wù)所需的總時(shí)間為當(dāng)前所有的已分配任務(wù)和即將分配的任務(wù)所需的任務(wù)耗時(shí)之和。

步驟1027b,根據(jù)該總時(shí)間和集群的節(jié)點(diǎn)數(shù)量確定為每個(gè)節(jié)點(diǎn)分配的任務(wù)時(shí)間。

示例的,為每個(gè)節(jié)點(diǎn)分配的任務(wù)時(shí)間可以采用平均分配的原則,即可以將該總時(shí)間ttotal除以集群的節(jié)點(diǎn)數(shù)量,得到每個(gè)節(jié)點(diǎn)分配的任務(wù)時(shí)間,可以記為av。

步驟1028b,根據(jù)為每個(gè)節(jié)點(diǎn)分配的任務(wù)時(shí)間、每個(gè)節(jié)點(diǎn)的剩余執(zhí)行時(shí)間以及每個(gè)待分配任務(wù)所需的任務(wù)耗時(shí)為每個(gè)節(jié)點(diǎn)分配待分配任務(wù)。

其中,每個(gè)節(jié)點(diǎn)的剩余執(zhí)行時(shí)間可以記為nlv,由于每個(gè)節(jié)點(diǎn)分配的任務(wù)時(shí)間中包含了其執(zhí)行自己任務(wù)隊(duì)列中所有已分配任務(wù)所需的任務(wù)耗時(shí),用每個(gè)節(jié)點(diǎn)分配的任務(wù)時(shí)間減去這部分時(shí)間,剩余的時(shí)間就是可以給該節(jié)點(diǎn)分配的用于執(zhí)行即將分配的任務(wù)的時(shí)間,可以將其稱為待分配任務(wù)時(shí)間,記為fv,則fv=av-nlv。然后根據(jù)每個(gè)節(jié)點(diǎn)的fv,以及待分配的每個(gè)待分配任務(wù)所需的任務(wù)耗時(shí),即可確定與每個(gè)節(jié)點(diǎn)的待分配任務(wù)時(shí)間所匹配的待分配任務(wù)。

示例的,以第一節(jié)點(diǎn)為例,第一節(jié)點(diǎn)為集群中任一節(jié)點(diǎn),上述步驟1028b可以包括以下步驟:

首先,將為第一節(jié)點(diǎn)分配的任務(wù)時(shí)間減去第一節(jié)點(diǎn)的剩余執(zhí)行時(shí)間,得到第一節(jié)點(diǎn)的待分配任務(wù)時(shí)間;

其次,根據(jù)每個(gè)待分配任務(wù)所需的任務(wù)耗時(shí),確定為第一節(jié)點(diǎn)分配的待分配任務(wù),使得第一節(jié)點(diǎn)分配的所有待分配任務(wù)所需的任務(wù)耗時(shí)之和與第一節(jié)點(diǎn)的待分配任務(wù)時(shí)間匹配,可以理解為給第一節(jié)點(diǎn)分配所有待分配任務(wù)所需的任務(wù)耗時(shí)之和與該第一節(jié)點(diǎn)的待分配任務(wù)時(shí)間相等,或者給第一節(jié)點(diǎn)分配所有待分配任務(wù)所需的任務(wù)耗時(shí)之和與該第一節(jié)點(diǎn)的待分配任務(wù)時(shí)間的誤差小于一定閾值。

步驟1029b,將分配給每個(gè)節(jié)點(diǎn)的待分配任務(wù)添加到每個(gè)節(jié)點(diǎn)的任務(wù)隊(duì)列中。

另外,值得一提的是,也可以將上述的步驟1021b-1029b所示的方法與平均分配原則相結(jié)合,例如,對(duì)于所有的已分配任務(wù)和待分配任務(wù),如果是曾經(jīng)執(zhí)行過(guò)的任務(wù),可以采用步驟1021b-1029b所示的方法進(jìn)行分配,剩余沒(méi)有執(zhí)行過(guò)的任務(wù)可以采用平均分配原則進(jìn)行分配,平均分配原則可參考步驟1021a-1022a,不再贅述。

圖4是根據(jù)一示例性實(shí)施例示出的一種集群任務(wù)均衡調(diào)度裝置的框圖,如圖4所示,應(yīng)用于集群中的任一節(jié)點(diǎn),該集群任務(wù)均衡調(diào)度裝置400包括:

調(diào)度監(jiān)聽(tīng)模塊410,用于當(dāng)監(jiān)聽(tīng)到第一調(diào)度到達(dá)約定的時(shí)間點(diǎn)時(shí),搶占調(diào)度鎖;

任務(wù)分配模塊420,用于在成功搶占調(diào)度鎖后,將第一調(diào)度對(duì)應(yīng)的待分配任務(wù)按照預(yù)設(shè)的任務(wù)分配規(guī)則分配給集群中的每個(gè)節(jié)點(diǎn);

任務(wù)通知模塊430,用于通知集群中的其他節(jié)點(diǎn)執(zhí)行分配的任務(wù)。

可選的,圖5是根據(jù)圖4所示實(shí)施例示出的一種任務(wù)分配模塊的框圖,如圖5所示,該任務(wù)分配模塊420,可以包括:

第一分配子模塊4201,用于將第一調(diào)度對(duì)應(yīng)的所有待分配任務(wù)按照平均分配原則分配給集群中的每個(gè)節(jié)點(diǎn);

隊(duì)列管理子模塊4202,用于將分配給每個(gè)節(jié)點(diǎn)的待分配任務(wù)添加到每個(gè)節(jié)點(diǎn)的任務(wù)隊(duì)列中,其中,每個(gè)節(jié)點(diǎn)對(duì)應(yīng)一個(gè)任務(wù)隊(duì)列。

或者,在另一種實(shí)現(xiàn)方式中,圖6是根據(jù)圖4所示實(shí)施例示出的另一種任務(wù)分配模塊的框圖,如圖6所示,該任務(wù)分配模塊420,可以包括:

隊(duì)列信息獲取子模塊4203,用于獲取集群中的所有節(jié)點(diǎn)的任務(wù)隊(duì)列信息,任務(wù)隊(duì)列信息中包括集群中的每個(gè)節(jié)點(diǎn)的任務(wù)隊(duì)列中當(dāng)前存在的已分配任務(wù);其中,每個(gè)節(jié)點(diǎn)對(duì)應(yīng)一個(gè)任務(wù)隊(duì)列;

任務(wù)耗時(shí)第一確定子模塊4204,用于確定每個(gè)節(jié)點(diǎn)的任務(wù)隊(duì)列中每個(gè)已分配任務(wù)所需的任務(wù)耗時(shí);

剩余時(shí)間確定子模塊4205,用于根據(jù)每個(gè)已分配任務(wù)所需的任務(wù)耗時(shí),確定所有節(jié)點(diǎn)的剩余執(zhí)行總時(shí)間,以及每個(gè)節(jié)點(diǎn)的剩余執(zhí)行時(shí)間,剩余執(zhí)行總時(shí)間為所有節(jié)點(diǎn)將所有已分配任務(wù)執(zhí)行完所需的總時(shí)間,每個(gè)節(jié)點(diǎn)的剩余執(zhí)行時(shí)間為每個(gè)節(jié)點(diǎn)將自己的任務(wù)隊(duì)列中的所有已分配任務(wù)執(zhí)行完所需的時(shí)間;

任務(wù)耗時(shí)第二確定子模塊4206,用于確定第一調(diào)度對(duì)應(yīng)的所有待分配任務(wù)中的每個(gè)待分配任務(wù)所需的任務(wù)耗時(shí);

任務(wù)總耗時(shí)確定子模塊4207,用于根據(jù)每個(gè)待分配任務(wù)所需的任務(wù)耗時(shí),確定所有待分配任務(wù)的總耗時(shí);

節(jié)點(diǎn)總時(shí)間確定模塊4208,用于根據(jù)剩余執(zhí)行總時(shí)間,以及所有待分配任務(wù)的總耗時(shí)確定所有節(jié)點(diǎn)執(zhí)行任務(wù)所需的總時(shí)間;

節(jié)點(diǎn)任務(wù)時(shí)間分配子模塊4209,用于根據(jù)總時(shí)間和集群的節(jié)點(diǎn)數(shù)量確定為每個(gè)節(jié)點(diǎn)分配的任務(wù)時(shí)間;

第二分配子模塊4210,用于根據(jù)為每個(gè)節(jié)點(diǎn)分配的任務(wù)時(shí)間、每個(gè)節(jié)點(diǎn)的剩余執(zhí)行時(shí)間以及每個(gè)待分配任務(wù)所需的任務(wù)耗時(shí)為每個(gè)節(jié)點(diǎn)分配待分配任務(wù);

隊(duì)列管理子模塊4211,用于將分配給每個(gè)節(jié)點(diǎn)的待分配任務(wù)添加到每個(gè)節(jié)點(diǎn)的任務(wù)隊(duì)列中。

可選的,任務(wù)耗時(shí)第一確定子模塊4204,用于:

當(dāng)?shù)谝蝗蝿?wù)曾經(jīng)執(zhí)行過(guò)的次數(shù)m大于或等于n時(shí),獲取第一任務(wù)在前n次執(zhí)行時(shí)的平均任務(wù)耗時(shí)作為第一任務(wù)所需的任務(wù)耗時(shí),第一任務(wù)為集群中的任一節(jié)點(diǎn)的任務(wù)隊(duì)列中的任一已分配任務(wù);

當(dāng)?shù)谝蝗蝿?wù)曾經(jīng)執(zhí)行過(guò)的次數(shù)m小于n時(shí),則獲取第一任務(wù)在前m次執(zhí)行時(shí)的平均任務(wù)耗時(shí)作為第一任務(wù)所需的任務(wù)耗時(shí);

當(dāng)?shù)谝蝗蝿?wù)未執(zhí)行過(guò)時(shí),獲取預(yù)先設(shè)定的默認(rèn)任務(wù)耗時(shí)作為第一任務(wù)所需的任務(wù)耗時(shí)。

可選的,任務(wù)耗時(shí)第二確定子模塊4206,用于:

當(dāng)?shù)诙蝿?wù)曾經(jīng)執(zhí)行過(guò)的次數(shù)m大于或等于n時(shí),獲取該第二任務(wù)在前n次執(zhí)行時(shí)的平均任務(wù)耗時(shí)作為該第二任務(wù)所需的任務(wù)耗時(shí),該第二任務(wù)為該第一調(diào)度對(duì)應(yīng)的所有待分配任務(wù)中的任一待分配任務(wù);

當(dāng)該第二任務(wù)曾經(jīng)執(zhí)行過(guò)的次數(shù)m小于n時(shí),則獲取該第二任務(wù)在前m次執(zhí)行時(shí)的平均任務(wù)耗時(shí)作為該第二任務(wù)所需的任務(wù)耗時(shí);

當(dāng)該第二任務(wù)未執(zhí)行過(guò)時(shí),獲取預(yù)先設(shè)定的默認(rèn)任務(wù)耗時(shí)作為該第二任務(wù)所需的任務(wù)耗時(shí),或者,當(dāng)該第二任務(wù)未執(zhí)行過(guò)時(shí),將該第二任務(wù)按照平均分配原則分配給該集群中的任一節(jié)點(diǎn)。

可選的,第二分配子模塊4210,用于:

將為第一節(jié)點(diǎn)分配的任務(wù)時(shí)間減去第一節(jié)點(diǎn)的剩余執(zhí)行時(shí)間,得到第一節(jié)點(diǎn)的待分配任務(wù)時(shí)間,該第一節(jié)點(diǎn)為集群中任一節(jié)點(diǎn);

根據(jù)每個(gè)待分配任務(wù)所需的任務(wù)耗時(shí),確定為第一節(jié)點(diǎn)分配的待分配任務(wù),使得第一節(jié)點(diǎn)分配的所有待分配任務(wù)所需的任務(wù)耗時(shí)之和與第一節(jié)點(diǎn)的待分配任務(wù)時(shí)間匹配。

本公開(kāi)提供的集群任務(wù)均衡調(diào)度裝置,當(dāng)監(jiān)聽(tīng)到第一調(diào)度到達(dá)約定的時(shí)間點(diǎn)時(shí),集群中的各個(gè)節(jié)點(diǎn)搶占調(diào)度鎖,在成功搶占所述調(diào)度鎖后,搶占調(diào)度鎖的節(jié)點(diǎn)將第一調(diào)度對(duì)應(yīng)的待分配任務(wù)按照預(yù)設(shè)的任務(wù)分配規(guī)則分配給集群中的每個(gè)節(jié)點(diǎn),通知集群中的其他節(jié)點(diǎn)執(zhí)行第一節(jié)點(diǎn)分配的任務(wù)。通過(guò)上述技術(shù)方案,執(zhí)行任務(wù)的節(jié)點(diǎn)不再競(jìng)爭(zhēng)任務(wù)鎖,而是在任一個(gè)節(jié)點(diǎn)搶占調(diào)度鎖之后,將當(dāng)前達(dá)約定的時(shí)間點(diǎn)第一調(diào)度對(duì)應(yīng)的待分配任務(wù)按照預(yù)設(shè)的任務(wù)分配規(guī)則分配給集群中的每個(gè)節(jié)點(diǎn),由各個(gè)節(jié)點(diǎn)一起來(lái)執(zhí)行任務(wù),從而能夠解決任務(wù)分配不均衡,以及任務(wù)鎖開(kāi)銷大的問(wèn)題,達(dá)到使得任務(wù)分配更均衡,降低系統(tǒng)負(fù)擔(dān)的效果。

圖7是根據(jù)一示例性實(shí)施例示出的一種電子設(shè)備700的框圖。如圖7所示,該電子設(shè)備700可以包括:處理器701,存儲(chǔ)器702,多媒體組件703,輸入/輸出(i/o)接口704,以及通信組件705。

其中,處理器701用于控制該電子設(shè)備700的整體操作,以完成上述的集群任務(wù)均衡調(diào)度方法中的全部或部分步驟。存儲(chǔ)器702用于存儲(chǔ)各種類型的數(shù)據(jù)以支持在該電子設(shè)備700的操作,這些數(shù)據(jù)例如可以包括用于在該電子設(shè)備700上操作的任何應(yīng)用程序或方法的指令,以及應(yīng)用程序相關(guān)的數(shù)據(jù),例如聯(lián)系人數(shù)據(jù)、收發(fā)的消息、圖片、音頻、視頻等等。該存儲(chǔ)器702可以由任何類型的易失性或非易失性存儲(chǔ)設(shè)備或者它們的組合實(shí)現(xiàn),例如靜態(tài)隨機(jī)存取存儲(chǔ)器(staticrandomaccessmemory,簡(jiǎn)稱sram),電可擦除可編程只讀存儲(chǔ)器(electricallyerasableprogrammableread-onlymemory,簡(jiǎn)稱eeprom),可擦除可編程只讀存儲(chǔ)器(erasableprogrammableread-onlymemory,簡(jiǎn)稱eprom),可編程只讀存儲(chǔ)器(programmableread-onlymemory,簡(jiǎn)稱prom),只讀存儲(chǔ)器(read-onlymemory,簡(jiǎn)稱rom),磁存儲(chǔ)器,快閃存儲(chǔ)器,磁盤或光盤。多媒體組件703可以包括屏幕和音頻組件。其中屏幕例如可以是觸摸屏,音頻組件用于輸出和/或輸入音頻信號(hào)。例如,音頻組件可以包括一個(gè)麥克風(fēng),麥克風(fēng)用于接收外部音頻信號(hào)。所接收的音頻信號(hào)可以被進(jìn)一步存儲(chǔ)在存儲(chǔ)器702或通過(guò)通信組件705發(fā)送。音頻組件還包括至少一個(gè)揚(yáng)聲器,用于輸出音頻信號(hào)。i/o接口704為處理器701和其他接口模塊之間提供接口,上述其他接口模塊可以是鍵盤,鼠標(biāo),按鈕等。這些按鈕可以是虛擬按鈕或者實(shí)體按鈕。通信組件705用于該電子設(shè)備700與其他設(shè)備之間進(jìn)行有線或無(wú)線通信。無(wú)線通信,例如wi-fi,藍(lán)牙,近場(chǎng)通信(nearfieldcommunication,簡(jiǎn)稱nfc),2g、3g或4g,或它們中的一種或幾種的組合,因此相應(yīng)的該通信組件705可以包括:wi-fi模塊,藍(lán)牙模塊,nfc模塊。

在一示例性實(shí)施例中,電子設(shè)備700可以被一個(gè)或多個(gè)應(yīng)用專用集成電路(applicationspecificintegratedcircuit,簡(jiǎn)稱asic)、數(shù)字信號(hào)處理器(digitalsignalprocessor,簡(jiǎn)稱dsp)、數(shù)字信號(hào)處理設(shè)備(digitalsignalprocessingdevice,簡(jiǎn)稱dspd)、可編程邏輯器件(programmablelogicdevice,簡(jiǎn)稱pld)、現(xiàn)場(chǎng)可編程門陣列(fieldprogrammablegatearray,簡(jiǎn)稱fpga)、控制器、微控制器、微處理器或其他電子元件實(shí)現(xiàn),用于執(zhí)行上述的集群任務(wù)均衡調(diào)度方法。

在另一示例性實(shí)施例中,還提供了一種包括程序指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),例如包括程序指令的存儲(chǔ)器702,上述程序指令可由電子設(shè)備700的處理器701執(zhí)行以完成上述的集群任務(wù)均衡調(diào)度方法。

圖8是根據(jù)一示例性實(shí)施例示出的另一種電子設(shè)備800的框圖。例如,電子設(shè)備800可以被提供為一服務(wù)器。參照?qǐng)D8,電子設(shè)備800包括處理器822,其數(shù)量可以為一個(gè)或多個(gè),以及存儲(chǔ)器832,用于存儲(chǔ)可由處理器822執(zhí)行的計(jì)算機(jī)程序。存儲(chǔ)器832中存儲(chǔ)的計(jì)算機(jī)程序可以包括一個(gè)或一個(gè)以上的每一個(gè)對(duì)應(yīng)于一組指令的模塊。此外,處理器822可以被配置為執(zhí)行該計(jì)算機(jī)程序,以執(zhí)行上述的集群任務(wù)均衡調(diào)度方法。

另外,電子設(shè)備800還可以包括電源組件826和通信組件850,該電源組件826可以被配置為執(zhí)行電子設(shè)備800的電源管理,該通信組件850可以被配置為實(shí)現(xiàn)電子設(shè)備800的通信,例如,有線或無(wú)線通信。此外,該電子設(shè)備800還可以包括輸入/輸出(i/o)接口858。電子設(shè)備800可以操作基于存儲(chǔ)在存儲(chǔ)器832的操作系統(tǒng),例如windowsservertm,macosxtm,unixtm,linuxtm等等。

在另一示例性實(shí)施例中,還提供了一種包括程序指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),例如包括程序指令的存儲(chǔ)器832,上述程序指令可由電子設(shè)備800的處理器822執(zhí)行以完成上述的集群任務(wù)均衡調(diào)度方法。

以上結(jié)合附圖詳細(xì)描述了本公開(kāi)的優(yōu)選實(shí)施方式,但是,本公開(kāi)并不限于上述實(shí)施方式中的具體細(xì)節(jié),在本公開(kāi)的技術(shù)構(gòu)思范圍內(nèi),可以對(duì)本公開(kāi)的技術(shù)方案進(jìn)行多種簡(jiǎn)單變型,這些簡(jiǎn)單變型均屬于本公開(kāi)的保護(hù)范圍。

另外需要說(shuō)明的是,在上述具體實(shí)施方式中所描述的各個(gè)具體技術(shù)特征,在不矛盾的情況下,可以通過(guò)任何合適的方式進(jìn)行組合,為了避免不必要的重復(fù),本公開(kāi)對(duì)各種可能的組合方式不再另行說(shuō)明。

此外,本公開(kāi)的各種不同的實(shí)施方式之間也可以進(jìn)行任意組合,只要其不違背本公開(kāi)的思想,其同樣應(yīng)當(dāng)視為本公開(kāi)所公開(kāi)的內(nèi)容。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
清丰县| 永泰县| 三原县| 拉萨市| 雅安市| 肃宁县| 竹溪县| 宕昌县| 江安县| 澄迈县| 南宁市| 汝南县| 彭水| 吴堡县| 广宁县| 瑞丽市| 辰溪县| 望江县| 同德县| 滁州市| 饶河县| 泉州市| 文山县| 玉环县| 岑溪市| 金山区| 洞口县| 临澧县| 长垣县| 井冈山市| 连江县| 常宁市| 仁布县| 清河县| 六枝特区| 辉县市| 正安县| 东光县| 扬州市| 乐昌市| 台州市|