本發(fā)明涉及計算機技術(shù)領(lǐng)域,尤其涉及一種集群任務(wù)的處理方法和裝置。
背景技術(shù):
隨著云服務(wù)的普及,越來越多信息需要進行云計算。為了提升云服務(wù)的每秒查詢率(Query Per Second,QPS)性能,需要將大量的接口異步化。而異步化常用的技術(shù)之一就是定時任務(wù)。
而傳統(tǒng)定時任務(wù)基本都是匯總在專門的一臺服務(wù)器,或者跟隨著業(yè)務(wù)部署在不同業(yè)務(wù)的某臺機器上。匯總在一臺服務(wù)器,雖然節(jié)省了管理監(jiān)控任務(wù)成本,但會導(dǎo)致定時任務(wù)增多,同一時刻需要執(zhí)行的任務(wù)很多,帶來服務(wù)器的負載開銷,而且各任務(wù)如果有依賴關(guān)系,則會導(dǎo)致任務(wù)阻塞。而分散在業(yè)務(wù)服務(wù)器,會出現(xiàn)任務(wù)卡死,進程異常等現(xiàn)象,無法確保每個任務(wù)都成功執(zhí)行。
隨著定時任務(wù)增多,同一時刻需要執(zhí)行的任務(wù)很多,帶來服務(wù)器的負載開銷,而且各任務(wù)如果有依賴關(guān)系,則會導(dǎo)致任務(wù)阻塞。因此如何高效的將大量的定時任務(wù)快速執(zhí)行稱為亟待解決的問題。
技術(shù)實現(xiàn)要素:
本發(fā)明提供一種集群任務(wù)的處理方法和裝置,用于解決隨著定時任務(wù)增多,同一時刻需要執(zhí)行的任務(wù)很多,帶來服務(wù)器的負載開銷,而且各任務(wù)如果有依賴關(guān)系,則會導(dǎo)致任務(wù)阻塞的問題,實現(xiàn)高效的將大量的定時任務(wù)快速執(zhí)行。
本發(fā)明第一方面提供一種集群任務(wù)的處理方法,包括:
將定時任務(wù)按照周期類別分別設(shè)置在不同的執(zhí)行隊列;
在每個執(zhí)行隊列中,將在執(zhí)行周期內(nèi)已經(jīng)執(zhí)行過的定時任務(wù)進行標記;
當(dāng)所述執(zhí)行隊列下次輪詢時,根據(jù)每個定時任務(wù)的標記,獲取在所述執(zhí)行周期內(nèi)還未執(zhí)行的任務(wù)進行執(zhí)行。
可選的,所述執(zhí)行周期類別包括:
每分鐘執(zhí)行一次、每小時執(zhí)行一次、每天執(zhí)行一次、每周執(zhí)行一次或者每個月執(zhí)行一次。
可選的,所述在每個執(zhí)行隊列中,將在執(zhí)行周期內(nèi)已經(jīng)執(zhí)行過的定時任務(wù)進行標記,包括:
將所述執(zhí)行隊列中的定時任務(wù),按照執(zhí)行周期、用戶組、腳本命令和執(zhí)行權(quán)重進行執(zhí)行;
其中,所述執(zhí)行權(quán)重用于標識所述任務(wù)的執(zhí)行次數(shù);所述執(zhí)行隊列中每個定時任務(wù)的執(zhí)行權(quán)重的初始值為預(yù)設(shè)時長內(nèi)的總執(zhí)行次數(shù),每執(zhí)行一次所述定時任務(wù),所述執(zhí)行任務(wù)對應(yīng)的執(zhí)行權(quán)重值減一。
可選的,所述根據(jù)每個定時任務(wù)的標記,獲取在所述執(zhí)行周期內(nèi)還未執(zhí)行的任務(wù)進行執(zhí)行,包括:
獲取每個定時任務(wù)對應(yīng)的執(zhí)行權(quán)重;
當(dāng)所述執(zhí)行權(quán)重大于零時,則執(zhí)行所述定時任務(wù),并將所述定時任務(wù)的執(zhí)行權(quán)重值減一;
當(dāng)所述執(zhí)行權(quán)重等于零時,則確定所述執(zhí)行任務(wù)在所述執(zhí)行周期內(nèi)已執(zhí)行完成。
可選的,所述方法還包括:
若存在執(zhí)行隊列的執(zhí)行時間大于所述執(zhí)行周期,則設(shè)置鎖;所述鎖用于保證所述執(zhí)行隊列的所有任務(wù)執(zhí)行完后再進行下一次輪詢執(zhí)行。
本發(fā)明第二方面提供一種集群任務(wù)的處理裝置,包括:
第一處理模塊,用于將定時任務(wù)按照周期類別分別設(shè)置在不同的執(zhí)行隊列;
第二處理模塊,用于在每個執(zhí)行隊列中,將在執(zhí)行周期內(nèi)已經(jīng)執(zhí)行過的定時任務(wù)進行標記;
第三處理模塊,用于當(dāng)所述執(zhí)行隊列下次輪詢時,根據(jù)每個定時任務(wù)的標記,獲取在所述執(zhí)行周期內(nèi)還未執(zhí)行的任務(wù)進行執(zhí)行。
可選的,所述執(zhí)行周期類別包括:
每分鐘執(zhí)行一次、每小時執(zhí)行一次、每天執(zhí)行一次、每周執(zhí)行一次或者每個月執(zhí)行一次。
可選的,所述第二處理模塊具體用于:
將所述執(zhí)行隊列中的定時任務(wù),按照執(zhí)行周期、用戶組、腳本命令和執(zhí)行權(quán)重進行執(zhí)行;
其中,所述執(zhí)行權(quán)重用于標識所述任務(wù)的執(zhí)行次數(shù);所述執(zhí)行隊列中每個定時任務(wù)的執(zhí)行權(quán)重的初始值為預(yù)設(shè)時長內(nèi)的總執(zhí)行次數(shù),每執(zhí)行一次所述定時任務(wù),所述執(zhí)行任務(wù)對應(yīng)的執(zhí)行權(quán)重值減一。
可選的,所述第三處理模塊具體用于:
獲取每個定時任務(wù)對應(yīng)的執(zhí)行權(quán)重;
當(dāng)所述執(zhí)行權(quán)重大于零時,則執(zhí)行所述定時任務(wù),并將所述定時任務(wù)的執(zhí)行權(quán)重值減一;
當(dāng)所述執(zhí)行權(quán)重等于零時,則確定所述執(zhí)行任務(wù)在所述執(zhí)行周期內(nèi)已執(zhí)行完成。
可選的,所述裝置還包括:
第四處理模塊,用于確定若存在執(zhí)行隊列的執(zhí)行時間大于所述執(zhí)行周期時設(shè)置鎖;所述鎖用于保證所述執(zhí)行隊列的所有任務(wù)執(zhí)行完后再進行下一次輪詢執(zhí)行。
本發(fā)明第三方面提供一種設(shè)備,包括:用于控制可執(zhí)行指令執(zhí)行的處理器以及用于存儲處理器可執(zhí)行指令的存儲器;
所述處理器用于:
將定時任務(wù)按照周期類別分別設(shè)置在不同的執(zhí)行隊列;
在每個執(zhí)行隊列中,將在執(zhí)行周期內(nèi)已經(jīng)執(zhí)行過的定時任務(wù)進行標記;
當(dāng)所述執(zhí)行隊列下次輪詢時,根據(jù)每個定時任務(wù)的標記,獲取在所述執(zhí)行周期內(nèi)還未執(zhí)行的任務(wù)進行執(zhí)行。
可選的,所述執(zhí)行周期類別包括:
每分鐘執(zhí)行一次、每小時執(zhí)行一次、每天執(zhí)行一次、每周執(zhí)行一次或者每個月執(zhí)行一次。
可選的,所述處理器具體用于:
將所述執(zhí)行隊列中的定時任務(wù),按照執(zhí)行周期、用戶組、腳本命令和執(zhí)行權(quán)重進行執(zhí)行;
其中,所述執(zhí)行權(quán)重用于標識所述任務(wù)的執(zhí)行次數(shù);所述執(zhí)行隊列中每個定時任務(wù)的執(zhí)行權(quán)重的初始值為預(yù)設(shè)時長內(nèi)的總執(zhí)行次數(shù),每執(zhí)行一次所述定時任務(wù),所述執(zhí)行任務(wù)對應(yīng)的執(zhí)行權(quán)重值減一。
可選的,所述處理器具體用于:
獲取每個定時任務(wù)對應(yīng)的執(zhí)行權(quán)重;
當(dāng)所述執(zhí)行權(quán)重大于零時,則執(zhí)行所述定時任務(wù),并將所述定時任務(wù)的執(zhí)行權(quán)重值減一;
當(dāng)所述執(zhí)行權(quán)重等于零時,則確定所述執(zhí)行任務(wù)在所述執(zhí)行周期內(nèi)已執(zhí)行完成。
可選的,所述處理器還用于:
若存在執(zhí)行隊列的執(zhí)行時間大于所述執(zhí)行周期,則設(shè)置鎖;所述鎖用于保證所述執(zhí)行隊列的所有任務(wù)執(zhí)行完后再進行下一次輪詢執(zhí)行。
本發(fā)明實施例提供的集群任務(wù)的處理方法和裝置,通過將所有的定時任務(wù)按照周期類別分別設(shè)置在不同的執(zhí)行隊列,在每個執(zhí)行隊列中,將在執(zhí)行周期內(nèi)已經(jīng)執(zhí)行過的定時任務(wù)進行標記,當(dāng)所述執(zhí)行隊列下次輪詢時,根據(jù)每個定時任務(wù)的標記,獲取在所述執(zhí)行周期內(nèi)還未執(zhí)行的任務(wù)進行執(zhí)行,拆解了不通類別定時任務(wù)隊列池,大大縮短了隊列池輪循時間,提升了執(zhí)行效率。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
圖1為本發(fā)明實施例提供的集群任務(wù)的處理方法實施例一的流程圖;
圖2為本發(fā)明實施例提供的集群任務(wù)的處理方法實施例二的流程圖;
圖3為本發(fā)明實施例提供的集群任務(wù)的處理裝置實施例一的結(jié)構(gòu)示意圖;
圖4為本發(fā)明實施例提供的集群任務(wù)的處理裝置實施例二的結(jié)構(gòu)示意圖;
圖5為本發(fā)明實施例提供的設(shè)備的結(jié)構(gòu)示意圖。
具體實施方式
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。
圖1為本發(fā)明實施例提供的集群任務(wù)的處理方法實施例一的流程圖,如圖1所示,該方案的執(zhí)行主體為集群服務(wù)器等進行集群任務(wù)處理的設(shè)備,該集群任務(wù)的處理方法的具體實現(xiàn)步驟為:
步驟S101,將定時任務(wù)按照周期類別分別設(shè)置在不同的執(zhí)行隊列。
在本步驟中,獲取到所有的定時任務(wù),即將所有的定時任務(wù)按照約定規(guī)則進行錄入,錄入定時任務(wù)的約定規(guī)則包括:按照用戶組運行錄入、按照執(zhí)行時間錄入、按照執(zhí)行腳本錄入或者按照執(zhí)行完畢后返回約定的狀態(tài)碼進行錄入。
在獲取到所有的要執(zhí)行的定時任務(wù)之后,按照周期類別將所有的定時任務(wù)進行分組,分別設(shè)置在不同的執(zhí)行隊列中,每個執(zhí)行隊列中的定時任務(wù)的周期類別相同。
該方案中,執(zhí)行周期類別包括:每分鐘執(zhí)行一次、每小時執(zhí)行一次、每天執(zhí)行一次、每周執(zhí)行一次或者每個月執(zhí)行一次。
步驟S102,在每個執(zhí)行隊列中,將在執(zhí)行周期內(nèi)已經(jīng)執(zhí)行過的定時任務(wù)進行標記。
在本步驟中,在對定時任務(wù)進行分類之后,根據(jù)一定的時間參數(shù)對任務(wù)進行初始化,然后按照不同的隊列進行輪詢執(zhí)行,在該過程中,在一個執(zhí)行周期內(nèi),可將已經(jīng)執(zhí)行過的定時任務(wù)進行標記,以使在下次輪詢到該定時任務(wù)時,能夠判斷該定時任務(wù)是否已經(jīng)被執(zhí)行過了,不需要重復(fù)執(zhí)行。例如:某定時任務(wù)每小時執(zhí)行一次,那么在執(zhí)行周期為一小時時,若該定時任務(wù)第一次被執(zhí)行完成,則需要增加標記,若在一小時內(nèi)第二次輪詢至該定時任務(wù),則可以直接通過該標記直接跳過該任務(wù)執(zhí)行下一個定時任務(wù)。若某定時任務(wù)是在每分鐘執(zhí)行一次,則在一個小時的執(zhí)行周期內(nèi)需要執(zhí)行六十次,則需要標記出已經(jīng)執(zhí)行的次數(shù),以便后續(xù)能夠判斷該任務(wù)的執(zhí)行次數(shù),避免已經(jīng)執(zhí)行完之后還需要再次輪詢。
步驟S103,當(dāng)所述執(zhí)行隊列下次輪詢時,根據(jù)每個定時任務(wù)的標記,獲取在所述執(zhí)行周期內(nèi)還未執(zhí)行的任務(wù)進行執(zhí)行。
在本步驟中,根據(jù)前述的方案,通過每個定時任務(wù)的標記,則在一個執(zhí)行周期內(nèi)對執(zhí)行隊列中已經(jīng)完成執(zhí)行的直接跳過,將執(zhí)行隊列中還需要再執(zhí)行的任務(wù)繼續(xù)進行處理,提升執(zhí)行效率。
本實施例提供的集群任務(wù)的處理方法,通過將所有的定時任務(wù)按照周期類別分別設(shè)置在不同的執(zhí)行隊列,在每個執(zhí)行隊列中,將在執(zhí)行周期內(nèi)已經(jīng)執(zhí)行過的定時任務(wù)進行標記,當(dāng)所述執(zhí)行隊列下次輪詢時,根據(jù)每個定時任務(wù)的標記,獲取在所述執(zhí)行周期內(nèi)還未執(zhí)行的任務(wù)進行執(zhí)行,拆解了不通類別定時任務(wù)隊列池,大大縮短了隊列池輪循時間,提升了執(zhí)行效率。
圖2為本發(fā)明實施例提供的集群任務(wù)的處理方法實施例二的流程圖,如圖2所示,在上述方案中,步驟S102的一種具體執(zhí)行方案為:將所述執(zhí)行隊列中的定時任務(wù),按照執(zhí)行周期、用戶組、腳本命令和執(zhí)行權(quán)重進行執(zhí)行,其中,所述執(zhí)行權(quán)重用于標識所述任務(wù)的執(zhí)行次數(shù);所述執(zhí)行隊列中每個定時任務(wù)的執(zhí)行權(quán)重的初始值為預(yù)設(shè)時長內(nèi)的總執(zhí)行次數(shù),每執(zhí)行一次所述定時任務(wù),所述執(zhí)行任務(wù)對應(yīng)的執(zhí)行權(quán)重值減一。據(jù)此,上述步驟S103的實現(xiàn)過程為:
步驟S201:獲取每個定時任務(wù)對應(yīng)的執(zhí)行權(quán)重。
在該方案中,可以預(yù)先對每個定時任務(wù)配置執(zhí)行權(quán)重,該權(quán)重的初始值一般可以配置為在執(zhí)行周期內(nèi)的執(zhí)行次數(shù),在每次隊列輪詢執(zhí)行到該定時任務(wù)時,均需要獲取該定時任務(wù)的執(zhí)行權(quán)重,以確定后續(xù)的操作。
步驟S202:當(dāng)所述執(zhí)行權(quán)重大于零時,則執(zhí)行所述定時任務(wù),并將所述定時任務(wù)的執(zhí)行權(quán)重值減一。
步驟S203:當(dāng)所述執(zhí)行權(quán)重等于零時,則確定所述執(zhí)行任務(wù)在所述執(zhí)行周期內(nèi)已執(zhí)行完成。
在本步驟中,定時任務(wù)每執(zhí)行一次,則其執(zhí)行權(quán)重減一,按照該方法在執(zhí)行周期內(nèi)按照隊列依次進行輪詢執(zhí)行,并在每次輪詢到該定時任務(wù)時確定其的執(zhí)行權(quán)重的大小,執(zhí)行權(quán)重等于零,則確認該任務(wù)已經(jīng)被執(zhí)行完成,在該執(zhí)行周期內(nèi)不需要再進行處理,執(zhí)行權(quán)重大于零,則確認該任務(wù)還需要被執(zhí)行,并在執(zhí)行完后將該任務(wù)的執(zhí)行權(quán)重減一,以此類推。
在上述兩個實施例的基礎(chǔ)上,下面以一實例對該集群任務(wù)的處理方案進行說明。
定時任務(wù)舉例腳本:10/*0 0**root sh/opt/cron.Sh(十分鐘執(zhí)行一次)
1、將所有的定時任務(wù)按照約定規(guī)則進行錄入(約定規(guī)則比如以什么用戶組運行,什么時間執(zhí)行,執(zhí)行什么腳本,執(zhí)行完畢后返回約定的狀態(tài)碼)。
2、對所有定時任務(wù)進行分類,整理(由于定時基本都為周期性任務(wù),因此可以根據(jù)周期類別分別設(shè)置不同的隊列。將月份的、星期的、每天的,每小時的、每分鐘的粒度進行分別初始化到不同隊列。本實例主要針對分鐘級別最細粒度優(yōu)化,其他類別同理。)
3、根據(jù)設(shè)置的時間參數(shù),于每天0點觸發(fā),進行任務(wù)初始化。將分鐘隊列按照設(shè)定時間,用戶組,腳本命令,執(zhí)行腳本ms級別耗時consume,執(zhí)行權(quán)重poll(值為周期性任務(wù)計算所得,舉例腳本60/10=6,則poll=6),最后執(zhí)行時間參數(shù)進行初始化。
4、利用定時任務(wù)進行小時腳本輪循,其中輪循只讀取poll值大于0的,等于0則認為該定時任務(wù)已經(jīng)執(zhí)行完畢,1天內(nèi)不需要再重復(fù)執(zhí)行。每執(zhí)行一次,就將poll值減一,并且修改最后執(zhí)行時間。如果poll值相同,則按照最后執(zhí)行最后再插入原則,修改輪循隊列。來保證輪循隊列只需要按照隊列順序先后執(zhí)行即可。此外,對于執(zhí)行耗時大于定時輪循耗時的,需要額外加鎖,來保證上一任務(wù)執(zhí)行完畢后才開始下一輪的任務(wù)執(zhí)行。對于非分鐘類別周期性腳本,則就按照有分鐘值大小從小到大插入隊列。
5、根據(jù)不同腳本類別,同一時刻可以異步進行分別輪循,這樣既減少了傳統(tǒng)所有類有都在一個隊列池輪循帶來的額外開銷,又能保證不再需要重復(fù)執(zhí)行的任務(wù)進行歸零。
6、記錄每次定時任務(wù)執(zhí)行時間和狀態(tài),如果執(zhí)行時間超出波動范圍值,則進行報警提醒,如果執(zhí)行狀態(tài)異常,則自動進行retry重試。
該方案通過大量匯總定時任務(wù)執(zhí)行至少需要更大隊列池的輪循,散列業(yè)務(wù)方式又不好監(jiān)控每個任務(wù)是否成功執(zhí)行,而采用本策略,拆解了不通類別定時任務(wù)隊列池,大大縮短了隊列池輪循時間,提升了執(zhí)行效率。
圖3為本發(fā)明實施例提供的集群任務(wù)的處理裝置實施例一的結(jié)構(gòu)示意圖,如圖3所示,本實施例提供的集群任務(wù)的處理裝置10包括:
第一處理模塊11,用于將定時任務(wù)按照周期類別分別設(shè)置在不同的執(zhí)行隊列;
第二處理模塊12,用于在每個執(zhí)行隊列中,將在執(zhí)行周期內(nèi)已經(jīng)執(zhí)行過的定時任務(wù)進行標記;
第三處理模塊13,用于當(dāng)所述執(zhí)行隊列下次輪詢時,根據(jù)每個定時任務(wù)的標記,獲取在所述執(zhí)行周期內(nèi)還未執(zhí)行的任務(wù)進行執(zhí)行。
可選的,所述執(zhí)行周期類別包括:
每分鐘執(zhí)行一次、每小時執(zhí)行一次、每天執(zhí)行一次、每周執(zhí)行一次或者每個月執(zhí)行一次。
可選的,所述第二處理模塊12具體用于:
將所述執(zhí)行隊列中的定時任務(wù),按照執(zhí)行周期、用戶組、腳本命令和執(zhí)行權(quán)重進行執(zhí)行;
其中,所述執(zhí)行權(quán)重用于標識所述任務(wù)的執(zhí)行次數(shù);所述執(zhí)行隊列中每個定時任務(wù)的執(zhí)行權(quán)重的初始值為預(yù)設(shè)時長內(nèi)的總執(zhí)行次數(shù),每執(zhí)行一次所述定時任務(wù),所述執(zhí)行任務(wù)對應(yīng)的執(zhí)行權(quán)重值減一。
可選的,所述第三處理模塊13具體用于:
獲取每個定時任務(wù)對應(yīng)的執(zhí)行權(quán)重;
當(dāng)所述執(zhí)行權(quán)重大于零時,則執(zhí)行所述定時任務(wù),并將所述定時任務(wù)的執(zhí)行權(quán)重值減一;
當(dāng)所述執(zhí)行權(quán)重等于零時,則確定所述執(zhí)行任務(wù)在所述執(zhí)行周期內(nèi)已執(zhí)行完成。
本實施例提供的集群任務(wù)的處理裝置,用于執(zhí)行前述任一實施例提供的方法實施例的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,在此不再贅述。
圖4為本發(fā)明實施例提供的集群任務(wù)的處理裝置實施例二的結(jié)構(gòu)示意圖,如圖4所示,所述集群任務(wù)的處理裝置10還包括:
第四處理模塊14,用于確定若存在執(zhí)行隊列的執(zhí)行時間大于所述執(zhí)行周期時設(shè)置鎖;所述鎖用于保證所述執(zhí)行隊列的所有任務(wù)執(zhí)行完后再進行下一次輪詢執(zhí)行。
本實施例提供的集群任務(wù)的處理裝置,用于執(zhí)行前述任一實施例提供的方法實施例的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,在此不再贅述。
圖5為本發(fā)明實施例提供的設(shè)備的結(jié)構(gòu)示意圖,如圖5所示,本發(fā)明還提供一種用于處理集群任務(wù)的設(shè)備,該設(shè)備包括:用于控制可執(zhí)行指令執(zhí)行的處理器以及用于存儲處理器可執(zhí)行指令的存儲器;
所述處理器用于:
將定時任務(wù)按照周期類別分別設(shè)置在不同的執(zhí)行隊列;
在每個執(zhí)行隊列中,將在執(zhí)行周期內(nèi)已經(jīng)執(zhí)行過的定時任務(wù)進行標記;
當(dāng)所述執(zhí)行隊列下次輪詢時,根據(jù)每個定時任務(wù)的標記,獲取在所述執(zhí)行周期內(nèi)還未執(zhí)行的任務(wù)進行執(zhí)行。
可選的,所述執(zhí)行周期類別包括:
每分鐘執(zhí)行一次、每小時執(zhí)行一次、每天執(zhí)行一次、每周執(zhí)行一次或者每個月執(zhí)行一次。
可選的,所述處理器具體用于:
將所述執(zhí)行隊列中的定時任務(wù),按照執(zhí)行周期、用戶組、腳本命令和執(zhí)行權(quán)重進行執(zhí)行;
其中,所述執(zhí)行權(quán)重用于標識所述任務(wù)的執(zhí)行次數(shù);所述執(zhí)行隊列中每個定時任務(wù)的執(zhí)行權(quán)重的初始值為預(yù)設(shè)時長內(nèi)的總執(zhí)行次數(shù),每執(zhí)行一次所述定時任務(wù),所述執(zhí)行任務(wù)對應(yīng)的執(zhí)行權(quán)重值減一。
可選的,所述處理器具體用于:
獲取每個定時任務(wù)對應(yīng)的執(zhí)行權(quán)重;
當(dāng)所述執(zhí)行權(quán)重大于零時,則執(zhí)行所述定時任務(wù),并將所述定時任務(wù)的執(zhí)行權(quán)重值減一;
當(dāng)所述執(zhí)行權(quán)重等于零時,則確定所述執(zhí)行任務(wù)在所述執(zhí)行周期內(nèi)已執(zhí)行完成。
可選的,所述處理器還用于:
若存在執(zhí)行隊列的執(zhí)行時間大于所述執(zhí)行周期,則設(shè)置鎖;所述鎖用于保證所述執(zhí)行隊列的所有任務(wù)執(zhí)行完后再進行下一次輪詢執(zhí)行。
本實施例提供的設(shè)備,用于執(zhí)行前述任一實施例提供的方法實施例的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,在此不再贅述。
在上述設(shè)備的實施例中,應(yīng)理解,處理器可以是中央處理單元(英文:Central Processing Unit,簡稱:CPU),還可以是其他通用處理器、數(shù)字信號處理器(英文:Digital Signal Processor,簡稱:DSP)、專用集成電路(英文:Application Specific Integrated Circuit,簡稱:ASIC)等。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等。結(jié)合本發(fā)明實施例所公開的方法的步驟可以直接體現(xiàn)為硬件處理器執(zhí)行完成,或者用處理器中的硬件及軟件模塊組合執(zhí)行完成。
本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述各方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實施例的步驟;而前述的存儲介質(zhì)包括:只讀存儲器(英文:read-only memory,縮寫:ROM)、RAM、快閃存儲器、硬盤、固態(tài)硬盤、磁帶(英文:magnetic tape)、軟盤(英文:floppy disk)、光盤(英文:optical disc)及其任意組合。
最后應(yīng)說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分或者全部技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。