新四季網

一種分布式定時任務控制裝置及方法

2023-12-07 07:09:16

專利名稱:一種分布式定時任務控制裝置及方法
技術領域:
本發明涉及雲開發技術領域,特別涉及一種分布式定時任務控制裝置及方法。
背景技術:
Cron,計劃任務,是任務在約定的時間執行已經計劃好的工作。例如,可以在配置文件中約定每天早上4點將httpd伺服器重新啟動,每天晚上10點鐘給某個郵箱發一封Ih,都是計劃任務。在Linux系統中,計劃任務一般是由cron承擔,cron可以根據配置文件約定的時間來執行特定的任務。將cron設置為開機時自動啟動。cron啟動後,它會讀取它的所有配置文件,如全局性配置文件/etc/crontab,以及每個用戶的計劃任務配置文件,然後cron會根據命令和執行時間來按時來調用度工作任務。cron可以在無需人工幹預的情況下運行作業,但是缺點在於不提供任何形式的API,只能通過應用的配置文件來配置Cron任務,局限於應用內部使用,缺少了靈活性。

發明內容
本發明旨在至少在一定程度上解決上述技術問題之一或至少提供一種有用的商業選擇。為此,本發明的第一個目的在於提出一種分布式定時任務控制裝置,可以提供一種分布式的Cron處理系統,可以處理高並發的Cron任務,只與用戶相關,使用者可以使用應用程式之外的URL作為定時任務的地址,更加靈活方便。本發明的第二個目的在於提出一種分布式定時任務控制方法。為達到上述目的,本發明第一方面的實施例提出了一種分布式定時任務控制裝置,包括:接收模塊,用於接收定時任務Cron的指令;資料庫模塊,用於保存Cron記錄,其中,每個所述Cron記錄具有對應的當前狀態信息;多個調度模塊,用於分別根據調度時間表對所述資料庫模塊中的Cron記錄進行調度,當Cron記錄滿足所述調度時間表之後,根據所述Cron記錄對應的當前狀態信息將所述Cron記錄放置到執行隊列中;執行模塊,用於執行所述執行隊列之中的Cron記錄。根據本發明實施例的分布式定時任務控制裝置,提供了一種分布式的Cron裝置,可以處理高並發的Cron任務,用戶可以同時創建並運行多個Cron,提供了友好的SDK和HTTP接口,只與用戶相關,不依賴於應用,使用者可以使用應用程式之外的URL作為定時任務的地址,更加靈活方便。在本發明的一個實施例中,每個所述Cron記錄還具有對應的執行狀態信息,所述執行模塊根據所述執行狀態信息執行所述執行隊列之中的Cron記錄。在本發明的一個實施例中,所述當前狀態信息包括活躍狀態、結束狀態、刪除狀態、暫停狀態和配額超限狀態中的一種或多種。在本發明的一個實施例中,所述多個調度模塊對處於活躍狀態的Cron記錄進行調度。在本發明的一個實施例中,其特徵在於,所述執行狀態信息包括就緒狀態、調度狀態和運行狀態。在本發明的一個實施例中,當所述調度模塊將Cron記錄放置到所述執行隊列中之後,將所述Cron記錄的執行狀態信息修改為調度狀態。在本發明的一個實施例中,當所述Cron記錄的執行狀態信息為調度狀態或運行狀態時,所述執行模塊不執行所述Cron記錄。在本發明的一個實施例中,所述調度模塊還用於在Cron記錄超時之後,將所述Cron記錄丟棄。在本發明的一個實施例中,所述資料庫包括多個子資料庫,且每個子資料庫包括多個數據列表。本發明第二方面實施例提出了一種分布式定時任務控制方法,包括以下步驟:接收定時任務Cron的指令並保存,其中每個所述Cron記錄具有對應的當前狀態信息;根據調度時間表對資料庫模塊中的Cron記錄進行調度;當所述Cron記錄滿足所述調度時間表時,根據所述Cron記錄對應的當前狀態信息將所述Cron記錄放置到執行隊列中;執行所述執行隊列之中的Cron記錄。根據本發明實施例的分布式定時任務控制方法提供了一種分布式的Cron實現方案,可以處理高並發的Cron任務,用戶可以同時創建並運行多個Cron,提供了友好的SDK和HTTP接口,只與用戶相關,不依賴於應用,使用者可以使用應用程式之外的URL作為定時任務的地址,更加靈活方便。本發明附加的方面和優點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發明的實踐了解到。


本發明所述的和/或附加的方面和優點從下面結合附圖對實施例的描述中將變得明顯和容易理解,其中:圖1為根據本發明一個實施例的分布式定時任務控制裝置的結構示意圖;圖2a為根據本發明一個實施例的調度模塊的抓取的示意圖;圖2b為根據本發明一個實施例的調度模塊發送任務至執行隊列的示意圖;圖3為根據本發明一個實施例的調度模塊的內部結構示意圖;圖4為根據本發明一個實施例的恢復Cron記錄的流程圖;圖5為根據本發明一個實施例的正常調度Cron記錄的流程圖;圖6為根據本發明一個實施例的調度超時Cron記錄的流程圖;圖7為根據本發明一個實施例的調度超時到下一執行時刻Cron記錄的流程圖;圖8為根據本發明一個實施例的處理運行超時Cron記錄的流程圖;圖9為根據本發明一個實施例的執行執行隊列中Cron記錄的流程圖;和圖10為根據本發明一個實施例的分布式定時任務控制方法的流程圖。
具體實施方式
下面詳細描述本發明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用於解釋本發明,而不能解釋為對本發明的限制。如圖1所示,本發明第一方面實施例提出的分布式定時任務控制裝置包括接收模塊110、資料庫模塊120、多個調度模塊130和執行模塊140。其中,接收模塊110用於接收定時任務Cron的指令;資料庫模塊120用於保存Cron記錄,其中,每個Cron記錄具有對應的當前狀態信息;多個調度模塊130用於分別根據調度時間表對資料庫模塊120中的Cron記錄進行調度,當Cron記錄滿足調度時間表之後,根據Cron記錄對應的當前狀態信息將Cron記錄放置到執行隊列中;執行模塊140用於執行執行隊列之中的Cron記錄。其中,當前狀態信息包括活躍狀態、結束狀態、刪除狀態、暫停狀態和配額超限狀態中的一種或多種。執行狀態信息包括就緒狀態、調度狀態和運行狀態。根據執行狀態信息執行執行隊列之中的Cron記錄。調度狀態,如task_status = DISPATCH,表示Cron記錄已經被推送至執行隊列,但是還沒有被執行。運行狀態,如task_status = RUNNING,表示Cron記錄已經被從執行隊列取走並開始執行。其中,只有處於活躍狀態下的當前狀態信息是可被調度的。資料庫包括多個子資料庫,且每個子資料庫包括多個數據列表。在本發明的一個實施例中,多個調度模塊130對處於活躍狀態的Cron記錄進行調度。當調度模塊130將Cron記錄放置到執行隊列中之後,將Cron記錄的執行狀態信息修改為調度狀態。當Cron記錄的執行狀態信息為調度狀態或運行狀態時,執行模塊140不執行Cron記錄。調度模塊130還用於在Cron記錄超時之後,將Cron記錄丟棄。每個Cron記錄還具有對應的執行狀態信息,執行模塊140根據執行狀態信息執行執行隊列之中的Cron記錄。下面以一個具體的實施例對根據本發明實施例的分布式定時任務控制裝置進行說明,可以理解的是,下述說明僅出於示例目的,本發明的實施例不限於此。接收模塊110屬於對外接口,多個調度模塊130和執行模塊140屬於調度部分。調度部分為本裝置的核心模塊,負責對用戶提交的Cron任務按照時間表進行調度;對外接口提供的功能包括:創建,刪除,修改,暫停,重啟,查詢,顯示所有Cron,查詢歷史等。調度部分和對外接口通過資料庫進行交互。接口模塊將Cron數據寫入資料庫。調度模塊130根據這些數據調度Cron記錄。其中,資料庫包括多個子資料庫,且每個子資料庫包括多個數據列表。本裝置有如下規則:一次任務是指Cron記錄的某一次執行。任務過時未被調度,則直接放棄調度。調度的過程是指任務在執行隊列上等待線程去調度。接收模塊110接收定時任務Cron的指令,指令包括創建,刪除,修改,暫停,重啟,查詢,顯示Cron記錄。資料庫模塊120保存Cron記錄,其中每個Cron記錄具有對應的當前狀態信息。多個調度模塊130根據調度時間表對資料庫模塊120中的Cron記錄進行調度。進一步地,多個調度模塊130從資料庫抓取符合要求的cron記錄,其中,符合要求包括抓取處於就緒狀態、調度超時狀態、運行超時狀態、休息狀態的Cron記錄。一個Cron記錄可以被多個調度模塊130抓取。如圖2a所示,T_cron*表為cron記錄表,有調度模塊1、2、3抓取cronl。但是多個調度模塊130同時調度一個Cron記錄會造成資源的浪費。因此可以通過一次抓取只賦予一個調度模塊130調度權利來避免資源浪費。這可以通過資料庫的行鎖進行保證:調度模塊130抓取完成後會將當前cron記錄的超時時間和狀態(Dispatch)更新到資料庫。因此,更新失敗的調度模塊130將放棄本次調度。這樣,一次只有一個調度模塊130可以真正執行任務,搶佔執行權的方法可以參考任務調度,通過資料庫行鎖來保證。如圖2b中的調度模塊3獲得了調度權限。採用異步事件處理模型,當Cron記錄被調度模塊130抓取後經過處理,發送至執行隊列中等待,等待的時間就是調度時間。如圖2b中調度模塊3將Cronl發送至執行隊列。當執行模塊140中的執行線程都在執行任務時,該cron記錄就需要等待。當cron記錄開始被調度時,將會寫入一個超時時間到資料庫,當超過這個時間卻還處於調度狀態時,該cron記錄會被調度模塊130抓起放入自己的調度隊列。此時,該cron記錄有多個調度模塊130。由於是定時服務,所以將過時的Cron記錄丟掉。常用的另外一種做法是將過時的Cron記錄向後推一個執行時間,但是這將導致以後每次任務的執行時間都不準確。其中,如圖3所示,調度模塊130包括抓取子模塊131、恢復子模塊132、調度超時子模塊133、下一刻執行子模塊134和運行超時子模塊135。調度模塊130調用子模塊進行處理,並將cron記錄發送至執行隊列。多個調度模塊130對符合要求的cron記錄分類處理:(I)、抓取子模塊131處理對需要恢復的Cron記錄,將其放回資料庫。如圖4,具體步驟包括:步驟S1:計算下次執行時間next_exec_time。步驟S2:將READY狀態和next_exec_time同時寫入資料庫。(2)、恢復子模塊132處理正常調度的Cron記錄,將其放入調度隊列。放入調度隊列的之前需要修改資料庫狀態為DISPATCH,多個Jobs進程同時做這個動作。只有一個成功。即搶奪調度權。如圖5,具體步驟包括:步驟S1:計算下次執行時間next_exec_time。步驟S2:計算超時時間 dispatch_timeout。步驟S3:將 DISPATCH 狀態和 next_exec_time、dispatch_timeout 更新到資料庫。步驟S4:判斷更新是否成功。步驟S5:如果更新成功,將Cron記錄加入執行隊列。步驟S6:如果更新不成功,進入下一步。步驟S7:結束處理。(3)、調度超時子模塊133處理調度超時的Cron記錄,將其放入調度隊列。如圖6,具體步驟包括:步驟S1:計算超時時間 dispatch_time_out。步驟S2:將dispatch_time_out更新到資料庫中。步驟S3:判斷更新是否成功。步驟S4:如果更新成功,將Cron記錄加入執行隊列。步驟S5:如果更新不成功,進入下一步。
步驟S6:結束處理。(4)、下一刻執行子模塊134處理調度超時到下一執行時刻的Cron記錄,將其放入調度隊列。如圖7,具體步驟包括:步驟S1:計算下次執行時間next_exec_time。步驟S2:將next_exec_time更新到資料庫。步驟S3:計算超時時間。步驟S4:將超時時間更新到資料庫。步驟S5:判斷更新是否成功。步驟S6:如果更新成功,將Cron記錄加入執行隊列。步驟S7:如果更新不成功,進入下一步。步驟S8:結束處理。(5)、運行超時子模塊135處理運行超時的Cron記錄,將其放入資料庫。如圖8,具體步驟包括:步驟S1:計算下次執行時間next_exec_time。步驟S2:將next_exec_time更新到資料庫。當Cron記錄滿足調度時間表時,調度模塊130根據Cron記錄對應的當前狀態信息將Cron記錄放置到執行隊列中。當Cron記錄到達執行之間時,並不是在本線程裡執行,而是被調度模塊130放置在執行隊列中,由執行進程從執行隊列中取出Cron記錄並執行,保證不會因為任務堆積造成任務遺漏。調度模塊130具體執行過程包括:步驟S1:執行事前修改任務狀態為RUNNING。這裡存在多個執行線程搶佔執行權的問題,解決方案可以為先寫資料庫成功的線程分配執行權。步驟S2:執行任務。步驟S3:修改Cron記錄狀態為READY,以便其他線程進行抓取。執行模塊140執行執行隊列之中的Cron記錄。具體執行模塊140執行步驟如圖9所示。步驟S1:將RUNNING狀態更新到資料庫。步驟S2:進行配額校驗。步驟S3:如果校驗成功。步驟S31:將任務推送至執行隊列中。繼續執行步驟S41。步驟S32:計算下次執行時間next_exec_time。步驟S33:設置 cront_status_tmp 為 LIVING 狀態。步驟S4:如果校驗失敗。步驟S41:計算下次執行時間next_exec_time。步驟S42:將 Cron_status_tmp 設為超限。步驟S5:檢查 exec_count > = times。步驟S6:如果 exec_count > = times,將 cron_status = FINISH, start_deal_time更新到資料庫。步驟S7:否則將 cron—status = cron—status—tmp,start—deal—time next—exec—time更新到資料庫。當Cron記錄數量巨大時,一個資料庫一張表將無法處理,此時需要分庫分表。分庫分表具體算法為:假設有M個庫,每個庫有N張表,則共有M*N張表。取uid的數字籤名signint (uid),用戶uid對應的分庫為(M*N% signint (uid)) /N,用戶對應的分表為(M*N%signint(uid)) % N。將調度模塊130分成若干組,一組調度模塊130對應一組表。調度模塊130組中的每個調度模塊130和對應表組中的每個表一一對應。這樣每張表就會由多個調度模塊130負責,如果一個調度模塊130有問題,其他調度模塊130還可以正常運行,不會對整個系統造成影響,從而避免單點問題。根據本發明實施例的分布式定時任務控制裝置,通過接收模塊接受用戶指令,調度模塊調度任務,並由執行模塊執行,其中,接收模塊和調度模塊、執行模塊之間的交互由資料庫模塊完成。該裝置可以處理高並發的Cron任務,用戶可以同時創建並運行多個Cron,提供了友好的SDK和HTTP接口,只與用戶相關,不依賴於應用,使用者可以使用應用程式之外的URL作為定時任務的地址,更加靈活方便。如圖10所示,根據本發明實施例的分布式定時任務控制方法,包括以下步驟:步驟SllO:接收定時任務Cron的指令並保存,其中每個Cron記錄具有對應的當前狀態信息。步驟S120:根據調度時間表對資料庫模塊中的Cron記錄進行調度。步驟S130:當Cron記錄滿足調度時間表時,根據Cron記錄對應的當前狀態信息將Cron記錄放置到執行隊列中。步驟S140:執行執行隊列之中的Cron記錄。其中,Cron記錄為資料庫中的一條記錄,具有對應的當前狀態信息和對應的執行狀態信息。當前狀態信息包括五種狀態,分別為活躍狀態、結束狀態、刪除狀態、暫停狀態和配額超限狀態。活躍狀態表示任務Cron正在運行;結束狀態表示任務Cron已經執行完畢;刪除狀態表示用戶請求刪除該任務Cron。但由於該任務Cron還有一次任務正在執行,所以未被刪除。暫停狀態表示用戶請求暫停任務Cron。配額超限狀態表示該任務Cron的配額超限,被禁止運行。執行狀態為一個任務Cron的一次執行,一條Cron記錄可以表不一個執行狀態,不同執行狀態對應的執行時間不同。執行狀態信息包括就緒狀態READY、調度狀態DISPATCH和運行狀態RUNNING,根據執行狀態信息執行執行隊列之中的Cron記錄。調度狀態,如task_status = DISPATCH,表示Cron記錄已經被推送至執行隊列,但是還沒有被執行。運行狀態,如task_status = RUNNING,表示Cron記錄已經被從執行隊列取走並開始執行。其中,只有處於活躍狀態下的當前狀態信息是可被調度的。當Cron記錄放置到執行隊列中之後,將Cron記錄的執行狀態信息修改為調度狀態。當Cron記錄的執行狀態信息為調度狀態或運行狀態時,不執行Cron記錄;如果Cron記錄超時,將Cron記錄丟棄。其中,資料庫包括多個子資料庫,且每個子資料庫包括多個數據列表。下面以一個具體的實施例對根據本發明實施例的分布式定時任務控制裝置進行說明,可以理解的是,下述說明僅出於示例目的,本發明的實施例不限於此。任務過時未被調度,則直接放棄調度。一次任務是指Cron記錄的某一次執行。調度的過程是指任務在執行隊列上等待線程去調度。接收定時任務Cron的指令並保存,其中每個Cron記錄具有對應的當前狀態信息。用戶通過接口可以使創建,刪除,修改,暫停,重啟,查詢,顯示所有Cron記錄。根據調度時間表對資料庫模塊中的Cron記錄進行調度。進一步地,從資料庫抓取符合要求的cron記錄,其中,符合要求包括抓取處於就緒狀態、調度超時狀態、運行超時狀態、休息狀態的Cron記錄。一個Cron記錄可以被多次抓取。採用異步事件處理模型,當cron記錄被抓取後經過處理,被發送執行隊列中等待,等待的時間就是調度時間。當執行線程都在執行任務時,該cron記錄就需要等待。當cron記錄開始被調度時,將會寫入一個超時時間到資料庫,當超過這個時間卻還處於調度狀態時,該cron記錄會被抓起放入自己的調度隊列。此時,該cron記錄有多個調度。但是多個同時調度一個Cron記錄會造成資源的浪費。因此可以通過一次抓取只有一個獲得調度權利來避免資源浪費。這可以通過資料庫的行鎖進行保證:抓取完成後會將當前cron記錄的超時時間和狀態(Dispatch)更新到資料庫。這樣,更新失敗的Job將放棄本次調度。因此,一次只有一個任務可以真正被執行,搶佔執行權的方法可以參考任務調度,通過資料庫行鎖來保證。由於是定時服務,所以將過時的Cron記錄丟掉。常用的另外一種做法是將過時的Cron記錄向後推一個執行時間,但是這將導致以後每次任務的執行時間都不準確。對符合要求的cron記錄分類處理:(I)、對需要恢復的Cron記錄,將其放回資料庫。如圖4,具體步驟包括:步驟S1:計算下次執行時間next_exec_time。步驟S2:將READY狀態和next_exec_time同時寫入資料庫。(2)、對正常調度的Cron記錄,將其放入調度隊列。放入調度隊列的之前需要修改資料庫狀態為DISPATCH,多個Jobs進程同時做這個動作。只有一個成功。即搶奪調度權。如圖5,具體步驟包括:步驟S1:計算下次執行時間next_exec_time。步驟S2:計算超時時間 dispatch_timeout。步驟S3:將 DISPATCH 狀態和 next_exec_time、dispatch_timeout 更新到資料庫。步驟S4:判斷更新是否成功。步驟S5:如果更新成功,將Cron記錄加入執行隊列。步驟S6:如果更新不成功,進入下一步。步驟S7:結束處理。(3)、處理調度超時的Cron記錄,將其放入調度隊列。如圖6,具體步驟包括:步驟S1:計算超時時間 dispatch_time_out。步驟S2:將dispatch_time_out更新到資料庫中。步驟S3:判斷更新是否成功。步驟S4:如果更新成功,將Cron記錄加入執行隊列。
步驟S5:如果更新不成功,進入下一步。步驟S6:結束處理。(4)、處理調度超時到下一執行時刻的Cron記錄,將其放入調度隊列。如圖7,具體步驟包括:步驟S1:計算下次執行時間next_exec_time。步驟S2:將next_exec_time更新到資料庫。步驟S3:計算超時時間。步驟S4:將超時時間更新到資料庫。步驟S5:判斷更新是否成功。步驟S6:如果更新成功,將Cron記錄加入執行隊列。步驟S7:如果更新不成功,進入下一步。步驟S8:結束處理。(5)、處理運行超時的Cron記錄,將其放入資料庫。如圖8,具體步驟包括:步驟S1:計算下次執行時間next_exec_time。步驟S2:將next_exec_time更新到資料庫。步驟S130:當Cron記錄滿足調度時間表時,根據Cron記錄對應的當前狀態信息將Cron記錄放置到執行隊列中。當Cron記錄到達執行之間時,並不是在本線程裡執行,而是被放置在執行隊列中,由執行進程從執行隊列中取出Cron記錄並執行,保證不會因為任務堆積造成任務遺漏。具體執行過程包括:步驟S1:執行事前修改任務狀態為RUNNING。這裡存在多個執行線程搶佔執行權的問題,解決方案可以為先寫資料庫成功的線程分配執行權。步驟S2:執行任務。步驟S3:修改Cron記錄狀態為READY,以便其他線程進行抓取。步驟S140:執行執行隊列之中的Cron記錄。具體的執行步驟如圖9所示,包括如下步驟:步驟S1:將RUNNING狀態更新到資料庫。步驟S2:進行配額校驗。步驟S3:如果校驗成功。步驟S31:將任務推送至執行隊列中。繼續執行步驟S41。步驟S32:計算下次執行時間next_exec_time。步驟S33:設置 cront_status_tmp 為 LIVING 狀態。步驟S4:如果校驗失敗。步驟S41:計算下次執行時間next_exec_time。步驟S42:將 Cron_status_tmp 設為超限。步驟S5:檢查 exec_count > = times。步驟S6:如果 exec_count > = times,將 cron_status = FINISH, start_deal_time更新到資料庫。步驟S7:否則將 cron—status = cron—status—tmp,start—deal—time next—exec—time更新到資料庫。當Cron記錄數量巨大時,一個資料庫一張表將無法處理,此時需要分庫分表。分庫分表具體算法為:假設有M個庫,每個庫有N張表,則共有M*N張表。取uid的數字籤名signint (uid),用戶uid對應的分庫為(M*N% signint (uid)) /N,用戶對應的分表為(M*N%signint (uid))% N。將負責調度的模塊分成若干組,一組負責調度的模塊對應一組表。負責調度的模塊組中的每個負責調度的模塊和對應表組中的每個表 對應。這樣每張表就會由多個負責調度的模塊負責,如果一個負責調度的模塊有問題,其他負責調度的模塊還可以正常運行,不會對整個系統造成影響,從而避免單點問題。根據本發明實施例的分布式定時任務控制方法,通過對外接口接受用戶指令,通過資料庫存儲按照資料庫所存儲的時間表進行調度,可以處理高並發的Cron任務,用戶可以同時創建並運行多個Cron,提供了友好的SDK和HTTP接口,只與用戶相關,不依賴於應用,使用者可以使用應用程式之外的URL作為定時任務的地址,更加靈活方便。在本說明書的描述中,參考術語「一個實施例」、「一些實施例」、「示例」、「具體示例」、或「一些示例」等的描述意指結合該實施例或示例描述的具體特徵、結構、材料或者特點包含於本發明的至少一個實施例或示例中。在本說明書中,對所述術語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特徵、結構、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結合。儘管已經示出和描述了本發明的實施例,對於本領域的普通技術人員而言,可以理解在不脫離本發明的原理和精神的情況下可以對這些實施例進行多種變化、修改、替換和變型,本發明的範圍由所附權利要求及其等同限定。
權利要求
1.一種分布式定時任務控制裝置,其特徵在於,包括: 接收模塊,用於接收定時任務Cron的指令; 資料庫模塊,用於保存Cron記錄,其中,每個所述Cron記錄具有對應的當前狀態信息; 多個調度模塊,用於分別根據調度時間表對所述資料庫模塊中的Cron記錄進行調度,當Cron記錄滿足所述調度時間表之後,根據所述Cron記錄對應的當前狀態信息將所述Cron記錄放置到執行隊列中;以及 執行模塊,用於執行所述執行隊列之中的Cron記錄。
2.如權利要求1所述的分布式定時任務控制裝置,其特徵在於,每個所述Cron記錄還具有對應的執行狀態信息,所述執行模塊根據所述執行狀態信息執行所述執行隊列之中的Cron記錄。
3.如權利要求1或2所述的分布式定時任務控制裝置,其特徵在於,所述當前狀態信息包括活躍狀態、結束狀態、刪除狀態、暫停狀態和配額超限狀態中的一種或多種。
4.如權利要求3所述的分布式定時任務控制裝置,其特徵在於,所述多個調度模塊對處於活躍狀態的Cron記錄進行調度。
5.如權利要求1-4任一 項所述的分布式定時任務控制裝置,其特徵在於,所述執行狀態信息包括就緒狀態、調度狀態和運行狀態。
6.如權利要求5所述的分布式定時任務控制裝置,其特徵在於,當所述調度模塊將Cron記錄放置到所述執行隊列中之後,將所述Cron記錄的執行狀態信息修改為調度狀態。
7.如權利要求6所述的分布式定時任務控制裝置,其特徵在於,當所述Cron記錄的執行狀態信息為調度狀態或運行狀態時,所述執行模塊不執行所述Cron記錄。
8.如權利要求1所述的分布式定時任務控制裝置,其特徵在於,所述調度模塊還用於在Cron記錄超時之後,將所述Cron記錄丟棄。
9.如權利要求1所述的分布式定時任務控制裝置,其特徵在於,所述資料庫包括多個子資料庫,且每個子資料庫包括多個數據列表。
10.一種分布式定時任務控制方法,其特徵在於,包括以下步驟: 接收定時任務Cron的指令並保存,其中每個所述Cron記錄具有對應的當前狀態信息; 根據調度時間表對資料庫模塊中的Cron記錄進行調度; 當所述Cron記錄滿足所述調度時間表時,根據所述Cron記錄對應的當前狀態信息將所述Cron記錄放置到執行隊列中;以及執行所述執行隊列之中的Cron記錄。
11.如權利要求10所述的分布式定時任務控制方法,其特徵在於,每個所述Cron記錄還具有對應的執行狀態信息,所述執行模塊根據所述執行狀態信息執行所述執行隊列之中的Cron記錄。
12.如權利要求10所述的分布式定時任務控制方法,其特徵在於,所述當前狀態信息包括活躍狀態、結束狀態、刪除狀態、暫停狀態和配額超限狀態中的一種或多種。
13.如權利要求10所述的分布式定時任務控制方法,其特徵在於,所述對處於活躍狀態的Cron記錄進行調度。
14.如權利要求10所述的分布式定時任務控制方法,其特徵在於,所述執行狀態信息包括就緒狀態、調度狀態和運行狀態。
15.如權利要求10所述的分布式定時任務控制方法,其特徵在於,所述Cron記錄放置到所述執行隊列中之後,將所述Cron記錄的執行狀態信息修改為調度狀態。
16.如權利要求15所述的分布式定時任務控制方法,其特徵在於,當所述Cron記錄的執行狀態信息為調度狀態或運行狀態時,不執行所述Cron記錄。
17.如權利要求10所述的分布式定時任務控制方法,其特徵在於,如果Cron記錄超時,將所述Cron記錄丟棄。
18.如權利要求10所述的分布式定時任務控制方法,其特徵在於,所述資料庫包括多個子資料庫,且每個子資料庫包括多個 數據列表。
全文摘要
本發明提出了一種分布式定時任務控制裝置,包括接收模塊,用於接收定時任務Cron的指令;資料庫模塊,用於保存Cron記錄,其中,每個所述Cron記錄具有對應的當前狀態信息;多個調度模塊,用於分別根據調度時間表對資料庫模塊中的Cron記錄進行調度,當Cron記錄滿足調度時間表之後,根據所述Cron記錄對應的當前狀態信息將Cron記錄放置到執行隊列中;執行模塊,用於執行執行隊列之中的Cron記錄。本發明可以處理高並發的Cron任務,只與用戶相關,使用者可以使用應用程式之外的URL作為定時任務的地址,更加靈活方便。本發明還提出了一種分布式定時任務控制方法。
文檔編號G06F9/48GK103197969SQ201310102698
公開日2013年7月10日 申請日期2013年3月27日 優先權日2013年3月27日
發明者安海雄, 高巍, 鄔晶 申請人:百度在線網絡技術(北京)有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀