專利名稱::一種計劃任務的處理方法及系統(tǒng)的制作方法
技術(shù)領域:
:本發(fā)明涉及計算機應用領域,特別是涉及一種計劃任務的處理方法及系統(tǒng)。
背景技術(shù):
:計算機應用中的"任務計劃"服務,可以讓用戶預先指定某些操作或某些程序的執(zhí)行時間,并且在相應的時間到達時,按照用戶的安排來觸發(fā)操作或程序的執(zhí)行。這項服務可以方便用戶在某一時間集中安排未來一段時間的計劃,安排過的任務可以自動執(zhí)行,無需人工干預,從而提高用戶的工作效率,另一方面,還可以起到提醒、備忘的作用。目前,很多操作系統(tǒng)或應用軟件都提供類似的服務或功能。在現(xiàn)有技術(shù)中,當用戶需要安排多個計劃任務,并把相關需求提交給計劃任務處理系統(tǒng)時,系統(tǒng)會一次性把用戶提交的所有任務的相關信息添加到任務隊列中。例如,用戶希望系統(tǒng)在10:00執(zhí)行taskl、在11:00執(zhí)行task2、在13:00執(zhí)行task3、在14:00執(zhí)行task4,則系統(tǒng)在接收到用戶輸入的需求數(shù)據(jù)之后,會一次性生成如下的時間表時刻任務10:00taskl11:00task213:00task314:00task4表1后續(xù)系統(tǒng)會根據(jù)任務隊列,實時對系統(tǒng)時鐘進行監(jiān)控,當?shù)竭_任務隊列中的某個任務時刻時,則觸發(fā)相應的任務執(zhí)行。然而在實際應用中,計劃經(jīng)常存在不確定因素,用戶往往需要對所確定的計劃任務隨時進行變更。在現(xiàn)有技術(shù)中,系統(tǒng)接收到用戶所提交的計劃變更請求后,需要將之前在任務隊列中所添加的任務信息刪除,然后重新添加4新的任務信息,維護任務隊列需要占用系統(tǒng)資源,而事實上,之前所添加的任務信息根本沒有被用到,影響了系統(tǒng)的處理效率,造成系統(tǒng)資源的浪費。當用戶需要對計劃進行較大修改時,這種情況則更為明顯。
發(fā)明內(nèi)容有鑒于此,本發(fā)明提供了一種計劃任務的處理方法及系統(tǒng),以解決現(xiàn)有方案針對計劃任務變更的情況處理效率較低的問題,技術(shù)方案如下一種計劃任務的處理方法,包括a)計劃任務處理系統(tǒng)接收用戶提交的計劃任務信息,對所述計劃任務信息進行緩存,并執(zhí)行步驟b);'b)根據(jù)緩存中各個計劃任務的執(zhí)行時刻,將執(zhí)行時刻最早的計劃任務,添加到任務隊列中;c)實時對系統(tǒng)時鐘進行監(jiān)控,并根據(jù)所述任務隊列順序觸發(fā)執(zhí)行任務,當所述任務隊列中的最后一個任務被觸發(fā)執(zhí)行時,返回步驟b)。一種計劃任務處理系統(tǒng),包括用戶接口單元、隊列處理單元和任務執(zhí)行單元所述用戶接口單元,用于接收用戶提交的計劃任務信息,對所述計劃任務信息進行緩存,向所述隊列處理單元發(fā)送隊列處理請求;所述隊列處理單元,用于在接收到隊列處理請求時,根據(jù)緩存中各個計劃任務的執(zhí)行時刻,將執(zhí)行時刻最早的任務,添加到任務隊列中;所述任務執(zhí)行單元,用于實時對系統(tǒng)時鐘進行監(jiān)控,并根據(jù)所述任務隊列順序觸發(fā)執(zhí)行任務,當所述任務隊列中的最后一個任務被觸發(fā)執(zhí)行時,向所述隊列處理單元發(fā)送隊列處理請求。以上技術(shù)方案,系統(tǒng)在接收到用戶制訂的計劃任務需求后,對相關信息進行緩存。根據(jù)任務的執(zhí)行順序,每次只將一項任務添加到任務隊列中,當該任務被觸發(fā)執(zhí)行后,再添加下一項任務。應用本發(fā)明技術(shù)方案,系統(tǒng)需要維護的任務隊列較小,節(jié)省了資源的占用。當用戶需要修改計劃時,也不需要重復對時間表進行添加和刪除操作,有效地提高了系統(tǒng)的處理效率。圖1為實現(xiàn)本發(fā)明計劃任務處理方法的流程圖;圖2為實現(xiàn)本發(fā)明計劃任務處理方法的另一種流程圖;圖3為本發(fā)明計劃任務處理系統(tǒng)的一種結(jié)構(gòu)示意圖;圖4為本發(fā)明計劃任務處理系統(tǒng)的另一種結(jié)構(gòu)示意圖。具體實施例方式首先對本發(fā)明的一種計劃任務的處理方法進行說明,包括a)計劃任務處理系統(tǒng)接收用戶提交的計劃任務信息,對所述計劃任務信息進行緩存;b)根據(jù)緩存中各個計劃任務的執(zhí)行時刻,將執(zhí)行時刻最早的任務,添加到任務隊列中;c)實時對系統(tǒng)時鐘進行監(jiān)控,并根據(jù)所述任務隊列順序觸發(fā)執(zhí)行任務,當所述任務隊列中的最后一個任務被觸發(fā)執(zhí)行時,返回步驟b)。為了使本
技術(shù)領域:
的人員更好地理解本發(fā)明方案,下面結(jié)合附圖對本發(fā)明的具體實施方式作進一步的詳細說明。實施例一圖1所示為本發(fā)明一種計劃任務的處理方法的流程圖,包括以下步驟5101,接收用戶提交的計劃任務信息,并對所述計劃任務信息進行緩存;以
背景技術(shù):
中提到的情況為例,用戶希望系統(tǒng)在10:00執(zhí)行taskl、在11:00執(zhí)行task2、在13:00執(zhí)行task3、在14:00執(zhí)行task4,將計劃任務信息輸入系統(tǒng)。信息中至少應包括任務的執(zhí)行時刻和任務的具體執(zhí)行方式。系統(tǒng)接收到用戶提交的計劃任務信息后,可以對這些信息進行緩存,例如以文本或是列表的形式進行緩存。此時系統(tǒng)的任務隊列為空,則進一步執(zhí)行S102。5102,根據(jù)各個計劃任務的執(zhí)行時刻,將執(zhí)行時刻最早的任務,添加到任務隊列中;現(xiàn)有技術(shù)中,系統(tǒng)會一次性把用戶提交的所有任務的相關信息添加到任務隊列中,而在本實施例中,系統(tǒng)僅將需要最早執(zhí)行的任務添加到任務隊列6中。在taskl、task2、task3、task4中,需要最早執(zhí)行的任務為taskl,則系統(tǒng)將taskl添加到任務隊列中,如表2所示。<table>tableseeoriginaldocumentpage7</column></row><table>表2S103,實時對系統(tǒng)時鐘進行監(jiān)控,并根據(jù)所述任務隊列順序觸發(fā)執(zhí)行任務,當所述任務隊列中的最后一個任務被觸發(fā)執(zhí)行時,返回S102.系統(tǒng)實時對時鐘進行監(jiān)控,當?shù)竭_taskl的^丸行時刻10:00時,觸發(fā)taskl的執(zhí)行,由于此時taskl已經(jīng)是任務隊列中的最后一個任務,因此系統(tǒng)在緩存中剩下的任務中選擇最早需要執(zhí)行的任務,這里所說的剩下的任務,可以理解為要在當前時間之后執(zhí)行的任務,在本實施例中即為task2、task3、task4,而其中task2為最早要執(zhí)行的任務,將task2的相關信息添加到任務隊列中,如表3所示(已執(zhí)行的任務taskl可以從任務隊列中刪除)<table>tableseeoriginaldocumentpage7</column></row><table>表3同樣道理,當task一皮觸發(fā)執(zhí)行后,系統(tǒng)將task3添加到任務隊列中,如此循環(huán),直到用戶提交的所有任務執(zhí)行完畢。圖2以時間軸的方式示出了整個系統(tǒng)的處理流程。本領域技術(shù)人員可以理解,用戶所提交的任務,也可以是需要周期性重復執(zhí)行的任務。對于這類任務,系統(tǒng)會根據(jù)用戶的需求為其添加特殊的標識,而上述的處理方法依然適用,即在添加該類任務時,每次^5l在任務隊列中添加一條該任務的信息。不同之處在于,將任務添加到隊列之后,需要在緩存中將該任務的運行時刻加上一個周期,以保證其周期性執(zhí)行。例如,假設上述task2是要求以4小時為周期執(zhí)行的任務,則系統(tǒng)把task2添加到任務隊列后,會將緩存中該任務的運行時刻修改為15:00,以便下次對其進行添加。與現(xiàn)有技術(shù)相比,在本實施例中,系統(tǒng)每次僅將距當前時間最近的任務添加到任務隊列中,當該任務執(zhí)行后再添加下一個任務。應用這種方案,系統(tǒng)每次添加任務時需要處理的任務量較少,并且,當用戶需要對已提交的計劃做變更時,系統(tǒng)僅需要做很少的反處理,下面的實施例將分別介紹在任務隊列不為空時,當用戶需要增加、刪除、修改計劃任務時,系統(tǒng)的相應處理方法。實施例二本實施例將對增加計劃任務的處理方法進行說明。用戶可以在系統(tǒng)運行過程中增加新的計劃任務。當系統(tǒng)接收到用戶的新增計劃任務信息后,會將新增任務的運行時刻t0,與當前任務隊列中第一個任務的運行時刻tl進行比較,如果t0早于tl,則將該新增任務添加到任務隊列中,否則,對該任務信息進行緩存。例如,當前的任務隊列如表3所示,用戶新增了需要在10:50執(zhí)行的任務task5,由于task5的運行時刻早于當前隊列中task3的運行時刻,因此系統(tǒng)會將task5的信息添加到任務隊列中,如表4所示<table>tableseeoriginaldocumentpage8</column></row><table>表4后續(xù)系統(tǒng)仍然可以按照S102-S103中所述的步驟進行處理當?shù)竭_task5的執(zhí)行時刻10:50時,觸發(fā)task5的執(zhí)行,由于task5并不是任務隊列中的最后一個任務,所以此時不向隊列中添加新任務。如果在task2的執(zhí)行時刻11:00到達之前用戶沒有增加新的任務,則在到達11:00時,task2將是任務隊列中的最后一個任務,此時再繼續(xù)添加新任務。實施例三本實施例將對刪除計劃任務的處理方法進行說明。當系統(tǒng)收到用戶的刪除計劃任務信息后,按照以下流程進行處理判斷待刪除的任務是否為當前任務隊列中的任務。如果否,則直接將該任務的信息從緩存中刪除。如果是,則由任務隊列中刪除該任務,并且進一步判斷任務隊列中是否還有其他任務,如果是則不執(zhí)行任何動作,如果否,則執(zhí)行S102。假設當前的任務任務隊列如表3所示,系統(tǒng)接收到刪除task2的指令,則將task2的相關信息由任務隊列中刪除,而此時任務隊列中已經(jīng)沒有其他任務,因此執(zhí)行S102,繼續(xù)將當前緩存中執(zhí)行時刻最早的任務添加到任務隊列中。實施例四本實施例將對修改計劃任務的處理方法進行說明。用戶所提交的任務信息中,包括任務的執(zhí)行時刻和任務的具體執(zhí)行方式兩部分,本實施例是針對修改任務執(zhí)行時刻的情況而言。對于僅需對任務的具體執(zhí)行方式進行修改的情況,與本發(fā)明方案無關,這里不再贅述。當系統(tǒng)收到用戶的修改計劃任務信息后,如果待修改的任務不在任務隊列中,則直接在緩存中修改該任務的信息,以下針對待修改的任務在任務隊列中的情況進行說明首先在任務隊列中修改該任務的執(zhí)行時間,然后需要進一步判斷修改后的執(zhí)行時刻是否晚于修改前的執(zhí)行時刻,如果否,則不執(zhí)行任何動作,如果是,則對該任務信息進行緩存,并從任務隊列中刪除。此時,如果任務隊列中已經(jīng)沒有其他任務,還需要進一步執(zhí)行S102。即重新在緩存中對任務的執(zhí)行時刻進行排序,并將執(zhí)行時刻最早的任務添加到任務隊列中。以上幾個實施例,分別對增加、刪除或修改計劃任務的處理方法進行了說明??梢钥闯?,由于每次只將一項任務添加到任務隊列中,因此系統(tǒng)需要維護的任務隊列較小。當用戶需要修改計劃時,也不需要重復對時間表進行添加和刪除操作,有效地提高了系統(tǒng)的處理效率。本領域普通技術(shù)人員可以理解實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;也可以在分布式計算環(huán)境中實現(xiàn)本發(fā)明,在這些分布式計算環(huán)境中,由通過通信網(wǎng)絡而被連接的遠程處理設備來執(zhí)行任務。在分布式計算環(huán)境中,程序模塊可9以位于包括存儲設備在內(nèi)的本地和遠程計算機存儲介質(zhì)中。而前述的存儲介質(zhì)包括ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。相應于上面的方法實施例,本發(fā)明實施例還提供一種計劃任務處理系統(tǒng),參見圖3所示,包括用戶接口單元310、隊列處理單元320和任務執(zhí)行單元330:所述用戶接口單元310,用于接收用戶提交的計劃任務信息,對所述計劃任務信息進行緩存,向所述隊列處理單元320發(fā)送隊列處理請求;所述隊列處理單元320,用于在接收到隊列處理請求時,根據(jù)緩存中各個計劃任務的執(zhí)行時刻,將執(zhí)行時刻最早的任務,添加到任務隊列中;所述任務執(zhí)行單元330,用于實時對系統(tǒng)時鐘進行監(jiān)控,并根據(jù)所述任務隊列順序觸發(fā)執(zhí)行任務,當所述任務隊列中的最后一個任務被觸發(fā)執(zhí)行時,向所述隊列處理單元發(fā)送隊列處理請求。參見圖4所示,上述的系統(tǒng)中還可以包括新增任務處理單元340,用于當所述計劃任務隊列不為空且接收到用戶提交的新增計劃任務信息時,判斷新增任務的運行時刻是否早于當前任務隊列中第一個任務的運行時刻,如果是,則將該新增任務添加到任務隊列中,否則,對該任務信息進行緩存。上述的系統(tǒng)中還可以包括刪除任務處理單元350,用于當所述計劃任務隊列不為空且接收到用戶提交的刪除計劃任務信息時,判斷待刪除的任務是否為當前任務隊列中的任務;如果否,則將該任務信息從緩存中刪除;如果是,則由任務隊列中刪除該任務,當任務隊列為空時,向所述隊列處理單元330發(fā)送隊列處理請求。上述的系統(tǒng)中還可以包括刪除任務處理單元360,用于當所述計劃任務隊列不為空且接收到用戶提交的刪除計劃任務信息時,10判斷待修改的任務是否為當前任務隊列中的任務;如果否,則在緩存中修改該任務的執(zhí)行時刻;如果是,則在任務隊列中修改該任務的執(zhí)行時刻;如果修改后的執(zhí)行時刻晚于修改前的執(zhí)行時刻,則對該任務信息進行緩存,并從任務隊列中刪除;當任務隊列為空時,向所述隊列處理單元330發(fā)送隊列處理請求。對于系統(tǒng)實施例而言,由于其基本相應于方法實施例,所以描述得比4支簡單,相關之處參見方法實施例的部分說明即可。以上所描述的系統(tǒng)實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上。可以根據(jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領域普通技術(shù)人員在不付出創(chuàng)造性的勞動的情況下,即可以理解并實施??梢岳斫獾氖?,本發(fā)明可用于眾多通用或?qū)S玫挠嬎阆到y(tǒng)環(huán)境或配置中。例如個人計算機、服務器計算機、手持設備或便攜式設備、平板型設備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機頂盒、可編程的消費電子設備、網(wǎng)絡PC、小型計算機、大型計算機、包括以上任何系統(tǒng)或設備的分布式計算環(huán)境等等。以上所述僅是本發(fā)明的具體實施方式,應當指出,對于本
技術(shù)領域:
的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發(fā)明的保護范圍。ii權(quán)利要求1、一種計劃任務的處理方法,其特征在于,包括a)計劃任務處理系統(tǒng)接收用戶提交的計劃任務信息,對所述計劃任務信息進行緩存,并執(zhí)行步驟b);b)根據(jù)緩存中各個計劃任務的執(zhí)行時刻,將執(zhí)行時刻最早的計劃任務,添加到任務隊列中;c)實時對系統(tǒng)時鐘進行監(jiān)控,并根據(jù)所述任務隊列順序觸發(fā)執(zhí)行任務,當所述任務隊列中的最后一個任務被觸發(fā)執(zhí)行時,返回步驟b)。2、根據(jù)權(quán)利要求1所述的方法,其特征在于,當計劃任務隊列不為空且接收到用戶提交的新增計劃任務信息時,所述方法還包括判斷新增計劃任務的運行時刻是否早于當前任務隊列中第一個任務的運行時刻,如果是,則將該新增計劃任務添加到任務隊列中,否則,對該新增計劃任務信息進行緩存。3、根據(jù)權(quán)利要求1所述的方法,其特征在于,當計劃任務隊列不為空且接收到用戶提交的刪除計劃任務信息時,所述方法還包括判斷待刪除的計劃任務是否為當前任務隊列中的計劃任務;如果否,則將該計劃任務信息從緩存中刪除;如果是,則由任務隊列中刪除該計劃任務,當任務隊列為空時,執(zhí)行所述步驟b)。4、根據(jù)權(quán)利要求1所述的方法,其特征在于,當計劃任務隊列不為空且接收到用戶提交的修改計劃任務信息時,所述方法還包括判斷待修改的計劃任務是否為當前任務隊列中的計劃任務;如果否,則在緩存中修改該計劃任務的執(zhí)行時刻;如果是,則在任務隊列中修改該計劃任務的執(zhí)行時刻;如果修改后的執(zhí)行時刻晚于修改前的執(zhí)行時刻,則對該計劃任務信息進行緩存,并從任務隊列中刪除;當任務隊列為空時,扭i行所述步驟b)。5、一種計劃任務處理系統(tǒng),其特征在于,包括用戶接口單元、隊列處理單元和任務執(zhí)行單元所述用戶接口單元,用于接收用戶提交的計劃任務信息,對所述計劃任務信息進行緩存,向所述隊列處理單元發(fā)送隊列處理請求;所述隊列處理單元,用于在接收到隊列處理請求時,根據(jù)緩存中各個計劃任務的執(zhí)行時刻,將執(zhí)行時刻最早的任務,添加到任務隊列中;所述任務執(zhí)行單元,用于實時對系統(tǒng)時鐘進行監(jiān)控,并根據(jù)所述任務隊列順序觸發(fā)執(zhí)行任務,當所述任務隊列中的最后一個任務被觸發(fā)執(zhí)行時,向所述隊列處理單元發(fā)送隊列處理請求。6、根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于,還包括新增任務處理單元,用于當所述計劃任務隊列不為空且接收到用戶提交的新增計劃任務信息時,判斷新增任務的運行時刻是否早于當前任務隊列中第一個任務的運行時刻,如果是,則將該新增任務添加到任務隊列中,否則,對該任務信息進行緩存。7、根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于,還包括刪除任務處理單元,用于當所述計劃任務隊列不為空且接收到用戶提交的刪除計劃任務信息時,判斷待刪除的任務是否為當前任務隊列中的任務;如果否,則將該任務信息從緩存中刪除;如果是,則由任務隊列中刪除該任務,當任務隊列為空時,向所述隊列處理單元發(fā)送隊列處理請求。8、根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于,還包括刪除任務處理單元,用于當所述計劃任務隊列不為空且接收到用戶提交的刪除計劃任務信息時,判斷待修改的任務是否為當前任務隊列中的任務;如果否,則在緩存中修改該任務的執(zhí)行時刻;如果是,則在任務隊列中修改該任務的執(zhí)行時刻;如果修改后的執(zhí)行時刻晚于修改前的執(zhí)行時刻,則對該任務信息進行緩存,并從任務隊列中刪除;當任務隊列為空時,向所述隊列處理單元發(fā)送隊列處理請求。全文摘要本發(fā)明公開了一種計劃任務的處理方法及系統(tǒng)。一種計劃任務的處理方法包括a)計劃任務處理系統(tǒng)接收用戶提交的計劃任務信息,對所述計劃任務信息進行緩存,并執(zhí)行步驟b);b)根據(jù)緩存中各個計劃任務的執(zhí)行時刻,將執(zhí)行時刻最早的任務,添加到任務隊列中;c)實時對系統(tǒng)時鐘進行監(jiān)控,并根據(jù)所述任務隊列順序觸發(fā)執(zhí)行任務,當所述任務隊列中的最后一個任務被觸發(fā)執(zhí)行時,返回步驟b)。應用本發(fā)明技術(shù)方案,系統(tǒng)需要維護的任務隊列較小,節(jié)省了資源的占用。當用戶需要修改計劃時,也不需要重復對時間表進行添加和刪除操作,有效地提高了系統(tǒng)的處理效率。文檔編號G06F9/46GK101510163SQ20091013268公開日2009年8月19日申請日期2009年4月7日優(yōu)先權(quán)日2009年4月7日發(fā)明者晟蔡申請人:金蝶軟件(中國)有限公司