国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      任務(wù)調(diào)度方法和系統(tǒng)與流程

      文檔序號:12719037閱讀:668來源:國知局
      任務(wù)調(diào)度方法和系統(tǒng)與流程

      本公開涉及計算機技術(shù),尤其涉及一種任務(wù)調(diào)度方法和系統(tǒng)。



      背景技術(shù):

      在軟件開發(fā)中,經(jīng)常會遇到一些場景,需要使用到定時器timer,比如,數(shù)據(jù)定時刷新、定時查詢某個事件狀態(tài)等,這些定時執(zhí)行的任務(wù)可以稱為定時任務(wù)。在相關(guān)技術(shù)中,通常需要為每個定時任務(wù)分別設(shè)置一個對應(yīng)的timer,并且,timer會在時間到達時通知對應(yīng)的任務(wù)去執(zhí)行,比如,定時任務(wù)需要每隔2分鐘執(zhí)行一次,那么timer就會計時,并在每隔2分鐘時通知任務(wù)執(zhí)行。這種timer啟動為任務(wù)的計時也可以稱為任務(wù)調(diào)度。但是上述的任務(wù)調(diào)度方式,對系統(tǒng)的資源消耗較大,可能使得系統(tǒng)運行較慢。



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

      為克服相關(guān)技術(shù)中存在的問題,本公開提供一種任務(wù)調(diào)度方法和系統(tǒng),以降低較多的定時任務(wù)對系統(tǒng)資源的過多消耗。

      根據(jù)本公開實施例的第一方面,提供一種任務(wù)調(diào)度方法,包括:

      啟動定時器對第一任務(wù)組的計時,所述第一任務(wù)組包括:定時時間間隔相同的至少一個定時任務(wù);

      當所述第一任務(wù)組對應(yīng)的定時時間間隔到達時,通知所述第一任務(wù)組中的各個定時任務(wù)執(zhí)行。

      根據(jù)本公開實施例的第二方面,提供一種任務(wù)調(diào)度系統(tǒng),包括:

      計時模塊,用于啟動定時器對第一任務(wù)組的計時,所述第一任務(wù)組包括: 定時時間間隔相同的至少一個定時任務(wù);

      通知模塊,用于當所述第一任務(wù)組對應(yīng)的定時時間間隔到達時,通知所述第一任務(wù)組中的各個定時任務(wù)執(zhí)行。

      本公開的實施例提供的技術(shù)方案可以包括以下有益效果:通過將定時任務(wù)分成定時任務(wù)組,并通過定時器啟動對該定時任務(wù)組的定時,相對于分別對各個定時任務(wù)計時的方式,將降低較多的定時任務(wù)對系統(tǒng)資源的過多消耗。

      應(yīng)當理解的是,以上的一般描述和后文的細節(jié)描述僅是示例性和解釋性的,并不能限制本公開。

      附圖說明

      此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本發(fā)明的實施例,并與說明書一起用于解釋本發(fā)明的原理。

      圖1是根據(jù)一示例性實施例示出的定時任務(wù)分組示意圖;

      圖2是根據(jù)一示例性實施例示出的一種任務(wù)調(diào)度方法的流程圖;

      圖3是根據(jù)一示例性實施例示出的關(guān)聯(lián)任務(wù)組示意圖;

      圖4是根據(jù)一示例性實施例示出的一種任務(wù)調(diào)度系統(tǒng)的結(jié)構(gòu)圖;

      圖5是根據(jù)一示例性實施例示出的另一種任務(wù)調(diào)度系統(tǒng)的結(jié)構(gòu)圖。

      具體實施方式

      這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本發(fā)明相一致的所有實施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。

      為了在定時任務(wù)較多時,避免對系統(tǒng)資源的過多消耗,提高系統(tǒng)的運行速度,本申請實施例提供了一種任務(wù)調(diào)度方法,該方法對定時任務(wù)采用了一種集中式的調(diào)度方式。

      參見圖1的示例,假設(shè)有四個定時任務(wù),定時任務(wù)是需要每隔一定時間執(zhí)行的任務(wù)。例如,定時任務(wù)-1可以是數(shù)據(jù)刷新任務(wù),每隔2分鐘執(zhí)行一次,即每隔2分鐘就從數(shù)據(jù)服務(wù)器獲取一次最新數(shù)據(jù);定時任務(wù)-2可以是查詢某個事件狀態(tài)的任務(wù),每隔1分鐘執(zhí)行一次,即每隔1分鐘就查詢一次事件狀態(tài)是否發(fā)生變化;同理,還可以包括定時任務(wù)-3和定時任務(wù)-4,本實施例假設(shè)定時任務(wù)-3也是每隔2分鐘執(zhí)行一次,定時任務(wù)-4是每隔1分鐘執(zhí)行一次。

      如果將上述的“2分鐘”、“1分鐘”稱為定時時間間隔,那么可以看到,定時任務(wù)-3和定時任務(wù)-1的定時時間間隔相同,定時任務(wù)-4和定時任務(wù)-2的定時時間間隔相同。如圖1所示,可以將定時任務(wù)-3和定時任務(wù)-1歸為一組,稱為“任務(wù)組A”,將定時任務(wù)-4和定時任務(wù)-2歸為一組,稱為“任務(wù)組B”,而任務(wù)組A和任務(wù)組B可以都稱為第一任務(wù)組。

      上述的各個第一任務(wù)組(任務(wù)組A和任務(wù)組B)都需要定時器timer進行定時,如圖1中的示意,任務(wù)組A和任務(wù)組B可以共用一個timer(圖1中的timer只是一個原理性的示意),該timer可以進行計時,在計時的過程中,當每隔1分鐘到達時,可以通知任務(wù)組B中的各個定時任務(wù)執(zhí)行;當每隔2分鐘到達時,就通知任務(wù)組A中的各個定時任務(wù)執(zhí)行。

      由上述可以看到,本申請的任務(wù)調(diào)度方法是執(zhí)行圖2所示的流程:

      在步驟201中,啟動定時器對第一任務(wù)組的計時,所述第一任務(wù)組包括:定時時間間隔相同的至少一個定時任務(wù)。

      例如,第一任務(wù)組可以是圖1中的任務(wù)組A,其中包括兩個定時任務(wù),即定時任務(wù)-1和定時任務(wù)-3。分在同一任務(wù)組中的定時任務(wù),可以具有相同的定時時間間隔,比如,都是每隔2分鐘執(zhí)行一次。

      可選的,需要啟動定時器計時的第一任務(wù)組的數(shù)量可以為多個,比如,在圖1示例中,包括兩個第一任務(wù)組,任務(wù)組A和任務(wù)組B,當然,還可以包括任務(wù)組C或任務(wù)組D等其他任務(wù)組。

      在步驟202中,當所述第一任務(wù)組對應(yīng)的定時時間間隔到達時,通知所述第一任務(wù)組中的各個定時任務(wù)執(zhí)行。

      例如,定時器為第一任務(wù)組進行計時,每隔2分鐘時,就通知第一任務(wù)組中的各個定時任務(wù)啟動執(zhí)行。

      當?shù)谝蝗蝿?wù)組的數(shù)量為多個時,比如,圖1所示例的兩個第一任務(wù)組,任務(wù)組A和任務(wù)組B,這兩個任務(wù)組的定時時間間隔不同,任務(wù)組A的定時時間間隔是2分鐘,任務(wù)組B的定時時間間隔是1分鐘,那么,定時器在計時的過程中,當?shù)竭_各個第一任務(wù)組分別對應(yīng)的定時時間間隔時,分別通知對應(yīng)的第一任務(wù)組。比如,計時到達每隔1分鐘時,就通知任務(wù)組B,到達每隔2分鐘時,就通知任務(wù)組A。

      可選的,定時器在時間到達通知各個定時任務(wù)時,可以根據(jù)第一任務(wù)組中的各個定時任務(wù)的優(yōu)先級標識,確定對各個定時任務(wù)的通知順序。比如,有的任務(wù)可能會比較繁瑣阻塞線程,導致后面的任務(wù)不能及時得到執(zhí)行,那么可以設(shè)定此類任務(wù)的優(yōu)先級較低,定時器就可以根據(jù)任務(wù)的優(yōu)先級,對任務(wù)的執(zhí)行進行排序,讓高優(yōu)先級的任務(wù)先執(zhí)行,保證重要功能的順利執(zhí)行,則定時器可以先行通知高優(yōu)先級的定時任務(wù)。

      可以看到,在本實施例的任務(wù)調(diào)度方法,對多個定時任務(wù)采用了集中式的調(diào)度方式,即由一個定時器集中為多個定時任務(wù)進行計時,相比于傳統(tǒng)方式中的每個定時任務(wù)分別設(shè)置一個對應(yīng)的定時器,定時器的設(shè)置數(shù)量減少,可以減少對系統(tǒng)資源的消耗,因此,即使運行了多個定時任務(wù)時,也不會大幅降低系統(tǒng)的運行速度。

      此外,這種對定時任務(wù)進行集中式的調(diào)度,還可以防止定時調(diào)度時的任務(wù)重復添加。在系統(tǒng)設(shè)計比較復雜時,多人協(xié)作難免會出現(xiàn)代碼各種錯誤,可能會導致同一個任務(wù)多次開啟執(zhí)行,通過集中式的管理,每個任務(wù)具有唯一標識,重復添加相同的任務(wù)可以設(shè)定只執(zhí)行一份任務(wù)。

      在另一例子中,定時器還可以同時啟動對關(guān)聯(lián)度比較高的一組定時任務(wù)的計時,并同時停止對該組定時任務(wù)的計時。比如,當用戶打開某個頁面時,該頁面中包括多個要開始啟動計時的定時任務(wù),也就是說,這多個定時任務(wù)在同一個頁面中,頁面啟動則這些任務(wù)要同時啟動,當頁面關(guān)閉該任務(wù)也要 同時關(guān)閉。本實施例針對這種情況,可以將上述的多個任務(wù)分在“關(guān)聯(lián)任務(wù)組”中,關(guān)聯(lián)任務(wù)組中包括至少兩個定時任務(wù)。

      示例性的,當檢測到上述頁面啟動時,定時器timer可以同時啟動對關(guān)聯(lián)任務(wù)組中的所有定時任務(wù)的計時;當頁面關(guān)閉時,timer可以同時停止對關(guān)聯(lián)任務(wù)組中的所有定時任務(wù)的計時。需要說明的是,上述的頁面打開,只是個示例,同時啟動或同時停止的定時任務(wù)并不一定只是依據(jù)同一任務(wù),也可以是其他關(guān)聯(lián)因素使得這些定時任務(wù)需要同時啟動或停止定時。而本實施例通過將這些定時任務(wù)分在關(guān)聯(lián)任務(wù)組中,并通過定時器對關(guān)聯(lián)任務(wù)組中的任務(wù)進行統(tǒng)一調(diào)度,也更加方便了對多個定時任務(wù)的管理。

      此外,定時器在啟動對關(guān)聯(lián)任務(wù)組中的各個定時任務(wù)的計時時,還可以將關(guān)聯(lián)任務(wù)組中的各個定時任務(wù),根據(jù)定時任務(wù)的定時時間間隔,劃分入對應(yīng)所述定時時間間隔的第一任務(wù)組。參見圖3的示例,假設(shè)關(guān)聯(lián)任務(wù)組中包括定時任務(wù)-5和定時任務(wù)-6,并且假設(shè)定時任務(wù)-5的定時時間間隔是2分鐘,定時任務(wù)-6的定時時間間隔是1分鐘,那么,可以將定時任務(wù)-5劃分入任務(wù)組A,將定時任務(wù)-6劃分入任務(wù)組B,定時器timer依舊在定時時間間隔到達時分別通知任務(wù)組A和任務(wù)組B,只是這兩個任務(wù)組中的任務(wù)增加了。

      此外,在上述的集中式任務(wù)調(diào)度系統(tǒng)中,還可以執(zhí)行一些集中式的任務(wù)管理工作。例如,可以在切后臺的瞬間將調(diào)度系統(tǒng)中的所有任務(wù)暫停,切到前臺時再恢復。又例如,可以在程序退出的時候把當前執(zhí)行的任務(wù)存到磁盤中,下次啟動時可以還原上次關(guān)閉時的狀態(tài),對于一些需要恢復上次狀態(tài)的需求有非常重要的作用。再例如,還可以進行任務(wù)狀態(tài)的統(tǒng)一管理,在接收到任務(wù)狀態(tài)查詢請求時,根據(jù)任務(wù)的唯一標識查詢?nèi)蝿?wù)當前的狀態(tài)信息,比如,距離任務(wù)下一次執(zhí)行還有多長時間。

      本申請實施例中,可以使用CFRunLoopTimerRef相關(guān)函數(shù)封裝Timer的調(diào)用,runloop底層函數(shù),這種封裝方式能夠更好的減少資源的消耗。此外,這種對多個定時任務(wù)統(tǒng)一管理的方式,有利于內(nèi)存的及時釋放,可以防止新手程序員誤寫導致內(nèi)存無法釋放。

      為了實現(xiàn)上述的任務(wù)調(diào)度方法,本申請還提供了一種任務(wù)調(diào)度系統(tǒng),如圖4所示,該系統(tǒng)可以包括:計時模塊41和通知模塊42。

      計時模塊41,用于啟動定時器對第一任務(wù)組的計時,所述第一任務(wù)組包括:定時時間間隔相同的至少一個定時任務(wù);

      通知模塊42,用于當所述第一任務(wù)組對應(yīng)的定時時間間隔到達時,通知所述第一任務(wù)組中的各個定時任務(wù)執(zhí)行。

      進一步的,所述第一任務(wù)組的數(shù)量為至少一個;至少一個所述第一任務(wù)組之間的定時時間間隔不同。通知模塊42,用于在定時器計時過程中,當?shù)竭_各個第一任務(wù)組分別對應(yīng)的定時時間間隔時,分別通知對應(yīng)的第一任務(wù)組。

      進一步的,計時模塊41,還用于同時啟動對關(guān)聯(lián)任務(wù)組中的所有定時任務(wù)的計時,所述關(guān)聯(lián)任務(wù)組中包括:至少兩個定時任務(wù);或者,同時停止對所述關(guān)聯(lián)任務(wù)組中的所有定時任務(wù)的計時。

      如圖5所示,該系統(tǒng)還可以包括:分組模塊43,用于將所述關(guān)聯(lián)任務(wù)組中的各個定時任務(wù),根據(jù)所述定時任務(wù)的定時時間間隔,劃分入對應(yīng)所述定時時間間隔的第一任務(wù)組。

      此外,通知模塊42,還用于在通知所述第一任務(wù)組中的各個定時任務(wù)執(zhí)行時,根據(jù)所述第一任務(wù)組中的各個定時任務(wù)的優(yōu)先級標識,確定對各個定時任務(wù)的通知順序。

      本實施例的任務(wù)調(diào)度裝置,對多個定時任務(wù)采用了集中式的調(diào)度方式,即由一個定時器集中為多個定時任務(wù)進行計時,相比于傳統(tǒng)方式中的每個定時任務(wù)分別設(shè)置一個對應(yīng)的定時器,定時器的設(shè)置數(shù)量減少,可以減少對系統(tǒng)資源的消耗,因此,即使運行了多個定時任務(wù)時,也不會大幅降低系統(tǒng)的運行速度。

      本領(lǐng)域技術(shù)人員在考慮說明書及實踐這里公開的發(fā)明后,將容易想到本發(fā)明的其它實施方案。本申請旨在涵蓋本發(fā)明的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本發(fā)明的一般性原理并包括本公開未公開的本技術(shù)領(lǐng)域中的公知常識或慣用技術(shù)手段。說明書和實施例僅被 視為示例性的,本發(fā)明的真正范圍和精神由下面的權(quán)利要求指出。

      應(yīng)當理解的是,本發(fā)明并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍進行各種修改和改變。本發(fā)明的范圍僅由所附的權(quán)利要求來限制。

      當前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1