亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

通用定時(shí)任務(wù)管理的實(shí)現(xiàn)方法

文檔序號(hào):6355646閱讀:387來源:國知局
專利名稱:通用定時(shí)任務(wù)管理的實(shí)現(xiàn)方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種在定時(shí)系統(tǒng)中對(duì)可配置的任務(wù)進(jìn)行定時(shí)管理的方法,尤其是一種 適合輕量級(jí)應(yīng)用場(chǎng)合的定時(shí)任務(wù)觸發(fā)的方法,具體地說是一種通用定時(shí)任務(wù)管理的實(shí)現(xiàn)方 法。
背景技術(shù)
眾所周知,在信息系統(tǒng)中,需要定期執(zhí)行一些作業(yè)任務(wù),這些任務(wù)可以通過一些作 業(yè)調(diào)度器(如quartz、Cr0n)來完成,這類作業(yè)調(diào)度器通過讀取解析cron表達(dá)式來定期執(zhí) 行注冊(cè)的任務(wù)。這些調(diào)度器功能齊全,但是相對(duì)復(fù)雜,龐大,在一些輕量級(jí)的應(yīng)用中并不合 適。另外,操作系統(tǒng)也提供了一類定時(shí)器,它通過底層的信號(hào)觸發(fā)機(jī)制來定時(shí)的發(fā)送 某個(gè)特殊的信號(hào),然后應(yīng)用程序通過捕獲該信號(hào)來執(zhí)行定期任務(wù)。這種定時(shí)器的缺點(diǎn)就是 沒有隊(duì)列的概念,所以每個(gè)定時(shí)器只能定期執(zhí)行一個(gè)任務(wù),如果要執(zhí)行多個(gè)不同的任務(wù)就 只能注冊(cè)多個(gè)定時(shí)器,而且不能保證每個(gè)信號(hào)都能夠被捕獲到。所以根據(jù)定時(shí)系統(tǒng)業(yè)務(wù)需求需要設(shè)計(jì)出一種任務(wù)管理器。該任務(wù)管理器要求具備 定時(shí)、高效、通用的特點(diǎn),同時(shí)又相對(duì)簡(jiǎn)單,能夠輕松的嵌入到各種應(yīng)用程序中去。

發(fā)明內(nèi)容
本發(fā)明的目的是針對(duì)目前輕量級(jí)應(yīng)用系統(tǒng)中實(shí)現(xiàn)定時(shí)管理時(shí)如采用系統(tǒng)自帶的 定時(shí)器則會(huì)造成編程復(fù)雜或難以保證每個(gè)定時(shí)信號(hào)均能按時(shí)觸發(fā)的問題,發(fā)明一種通用性 強(qiáng),針對(duì)性好,易于移植和開發(fā)的通用定時(shí)任務(wù)管理器并通過該管理器實(shí)現(xiàn)定時(shí)管理。本發(fā)明的技術(shù)方案是—種通用定時(shí)任務(wù)管理的實(shí)現(xiàn)方法,其特征是它包括以下步驟首先,設(shè)置一個(gè)管理器,該管理器由一個(gè)同步有序隊(duì)列和多個(gè)生成者、消費(fèi)者線程 組成;定時(shí)任務(wù)由生產(chǎn)者存放在隊(duì)列中形成隊(duì)列管理器,然后由消費(fèi)者線程定時(shí)執(zhí)行;其次,使上述隊(duì)列管理器通過一個(gè)同步有序隊(duì)列對(duì)其中的不同定時(shí)任務(wù)進(jìn)行管 理,隊(duì)列中的任務(wù)按照?qǐng)?zhí)行時(shí)間進(jìn)行升序排序,每次往隊(duì)列中添加任務(wù)時(shí),會(huì)觸發(fā)一個(gè)通 知,并且通過插入排序保證隊(duì)列的排序不變。該隊(duì)列通過互斥量來保證每次只有一個(gè)線程 對(duì)其進(jìn)行操作;第三,消費(fèi)者線程在啟動(dòng)時(shí),首先檢查隊(duì)列中是否有定期的任務(wù),如果沒有,則阻 塞線程,等待任務(wù)插入時(shí)被通知喚醒,重新檢查隊(duì)列;如果發(fā)現(xiàn)有任務(wù),則查看任務(wù)是不是 已經(jīng)到期了,如果還沒有到期,則計(jì)算到期時(shí)間,開始阻塞線程,并限時(shí)等待。如果等待時(shí)限 到了,或者被通知喚醒則重新檢查隊(duì)列;在每次檢查隊(duì)列的時(shí)候,如果發(fā)現(xiàn)到期任務(wù)則立即 執(zhí)行;對(duì)于周期性任務(wù),則在每次執(zhí)行之后會(huì)修改開始執(zhí)行時(shí)間,然后再次插入隊(duì)列中,等 待被調(diào)用執(zhí)行。在每次檢查隊(duì)列中有沒有到期的任務(wù)時(shí),只需要檢查隊(duì)首的元素就可以判斷有沒有任務(wù)到期;因?yàn)殛?duì)列中的任務(wù)時(shí)按照到期時(shí)間升序排列的,如果隊(duì)首任務(wù)沒有到期,則隊(duì) 首之后的任務(wù)也肯定沒有到期,所以消費(fèi)者線程每次檢查隊(duì)列時(shí),只需要檢查隊(duì)首的任務(wù) 就可以了,而不是檢查所有的任務(wù)。本發(fā)明的有益效果利用本發(fā)明的方法只需通過繼承一個(gè)定時(shí)任務(wù)類,并改寫其虛函數(shù)就可以將其放 入隊(duì)列中被定時(shí)執(zhí)行。操作簡(jiǎn)單,集成到應(yīng)用程序中也很方便。本發(fā)明可以有一個(gè)或者多個(gè)消費(fèi)者線程,從同一個(gè)隊(duì)列中獲取任務(wù)并執(zhí)行,這樣 可以按照業(yè)務(wù)需求任意設(shè)置執(zhí)行線程數(shù),而不是一種任務(wù)對(duì)應(yīng)一個(gè)線程,這樣就使得其中 的每一條線程都可以得到充分的利用。本發(fā)明還具有以下功能 定時(shí)定時(shí)主要體現(xiàn)在任務(wù)能定時(shí)被執(zhí)行。 通用通用主要體現(xiàn)在任務(wù)管理器支持不同類型的任務(wù)、以及相同類型的周期性或非周 期性任務(wù)。 高效高效主要體現(xiàn)在采用事件觸發(fā)機(jī)制并支持并發(fā)處理。


圖1是本發(fā)明的任務(wù)管理器的邏輯流程圖。圖2是本發(fā)明的任務(wù)管理器的實(shí)現(xiàn)定時(shí)觸發(fā)的過程示意圖。
具體實(shí)施例方式下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的說明。如圖1、2所示。一種通用定時(shí)任務(wù)管理的實(shí)現(xiàn)方法,它包括以下步驟首先,設(shè)置一個(gè)管理器(如圖1所示),該管理器由一個(gè)同步有序隊(duì)列和多個(gè)生成 者、消費(fèi)者線程組成;定時(shí)任務(wù)由生產(chǎn)者存放在隊(duì)列中形成隊(duì)列管理器,然后由消費(fèi)者線程 定時(shí)執(zhí)行;其次,使上述隊(duì)列管理器通過一個(gè)同步有序隊(duì)列對(duì)其中的不同定時(shí)任務(wù)進(jìn)行管 理,隊(duì)列中的任務(wù)按照?qǐng)?zhí)行時(shí)間進(jìn)行升序排序,每次往隊(duì)列中添加任務(wù)時(shí),會(huì)觸發(fā)一個(gè)通 知,并且通過插入排序保證隊(duì)列的排序不變。該隊(duì)列通過互斥量來保證每次只有一個(gè)線程 對(duì)其進(jìn)行操作;具體的定時(shí)觸發(fā)流程如圖2所示,生成者線程首先通過配置文件來生成一個(gè)定時(shí) 任務(wù),然后將其插入到同步有序任務(wù)隊(duì)列中去。當(dāng)有任務(wù)被插入到隊(duì)列中去的時(shí)候,都會(huì)觸 發(fā)一個(gè)通知,喚醒那些等待任務(wù)到來的線程。然后開啟若干個(gè)消費(fèi)者線程,當(dāng)線程檢查隊(duì)列,發(fā)現(xiàn)首個(gè)任務(wù)沒有到期時(shí),就會(huì)計(jì) 算到期的時(shí)間,然后阻塞線程,直到時(shí)間到期或者被其他線程喚醒;否則立即執(zhí)行任務(wù)。任 務(wù)在執(zhí)行完一次之后,會(huì)判斷是不是周期性任務(wù),如果是周期性任務(wù),則修改下次到期執(zhí)行時(shí)間,并判斷有沒有過期,將未過期的任務(wù)再次插入隊(duì)列中去,然后重新檢查隊(duì)列,尋找下 一個(gè)到期任務(wù)。如果,隊(duì)列為空,則會(huì)一直處于阻塞狀態(tài),直到被生產(chǎn)者線程喚醒;否則,檢 查隊(duì)列首個(gè)定時(shí)任務(wù)。在每次檢查隊(duì)列中有沒有到期的任務(wù)時(shí),只需要檢查隊(duì)首的元素就可以判斷有沒 有任務(wù)到期;因?yàn)殛?duì)列中的任務(wù)時(shí)按照到期時(shí)間升序排列的,如果隊(duì)首任務(wù)沒有到期,則隊(duì) 首之后的任務(wù)也肯定沒有到期,所以消費(fèi)者線程每次檢查隊(duì)列時(shí),只需要檢查隊(duì)首的任務(wù) 就可以了,而不是檢查所有的任務(wù)。本發(fā)明未涉及部分均與現(xiàn)有技術(shù)相同或可采用現(xiàn)有技術(shù)加以實(shí)現(xiàn)。
權(quán)利要求
1.一種通用定時(shí)任務(wù)管理的實(shí)現(xiàn)方法,其特征是它包括以下步驟首先,設(shè)置一個(gè)管理器,該管理器由一個(gè)同步有序隊(duì)列和多個(gè)生成者、消費(fèi)者線程組 成;定時(shí)任務(wù)由生產(chǎn)者存放在隊(duì)列中形成隊(duì)列管理器,然后由消費(fèi)者線程定時(shí)執(zhí)行;其次,使上述隊(duì)列管理器通過一個(gè)同步有序隊(duì)列對(duì)其中的不同定時(shí)任務(wù)進(jìn)行管理,隊(duì) 列中的任務(wù)按照?qǐng)?zhí)行時(shí)間進(jìn)行升序排序,每次往隊(duì)列中添加任務(wù)時(shí),會(huì)觸發(fā)一個(gè)通知,并且 通過插入排序保證隊(duì)列的排序不變;該隊(duì)列通過互斥量來保證每次只有一個(gè)線程對(duì)其進(jìn)行 操作;第三,消費(fèi)者線程在啟動(dòng)時(shí),首先檢查隊(duì)列中是否有定期的任務(wù),如果沒有,則阻塞線 程,等待任務(wù)插入時(shí)被通知喚醒,重新檢查隊(duì)列;如果發(fā)現(xiàn)有任務(wù),則查看任務(wù)是不是已經(jīng) 到期了,如果還沒有到期,則計(jì)算到期時(shí)間,開始阻塞線程,并限時(shí)等待;如果等待時(shí)限到 了,或者被通知喚醒則重新檢查隊(duì)列;在每次檢查隊(duì)列的時(shí)候,如果發(fā)現(xiàn)到期任務(wù)則立即執(zhí) 行;對(duì)于周期性任務(wù),則在每次執(zhí)行之后會(huì)修改開始執(zhí)行時(shí)間,然后再次插入隊(duì)列中,等待 被調(diào)用執(zhí)行。
2.根據(jù)權(quán)利要求1所述的通用定時(shí)任務(wù)管理的實(shí)現(xiàn)方法,其特征是在每次檢查隊(duì)列中 有沒有到期的任務(wù)時(shí),只需要檢查隊(duì)首的元素就可以判斷有沒有任務(wù)到期;因?yàn)殛?duì)列中的 任務(wù)時(shí)按照到期時(shí)間升序排列的,如果隊(duì)首任務(wù)沒有到期,則隊(duì)首之后的任務(wù)也肯定沒有 到期,所以消費(fèi)者線程每次檢查隊(duì)列時(shí),只需要檢查隊(duì)首的任務(wù)就可以了,而不是檢查所有 的任務(wù)。
全文摘要
一種通用定時(shí)任務(wù)管理的實(shí)現(xiàn)方法,其特征是它包括以下步驟首先,設(shè)置一個(gè)管理器,該管理器由一個(gè)同步有序隊(duì)列和多個(gè)生成者、消費(fèi)者線程組成;其次,使上述隊(duì)列管理器通過一個(gè)同步有序隊(duì)列對(duì)其中的不同定時(shí)任務(wù)進(jìn)行管理,隊(duì)列中的任務(wù)按照?qǐng)?zhí)行時(shí)間進(jìn)行升序排序,每次往隊(duì)列中添加任務(wù)時(shí),會(huì)觸發(fā)一個(gè)通知,并且通過插入排序保證隊(duì)列的排序不變;第三,消費(fèi)者線程在啟動(dòng)時(shí),首先檢查隊(duì)列中是否有定期的任務(wù),如果沒有,則阻塞線程,等待任務(wù)插入時(shí)被通知喚醒,重新檢查隊(duì)列;如果發(fā)現(xiàn)有任務(wù),則查看任務(wù)是不是已經(jīng)到期了,如果還沒有到期,則計(jì)算到期時(shí)間,開始阻塞線程,并限時(shí)等待。如果等待時(shí)限到了,或者被通知喚醒則重新檢查隊(duì)列;在每次檢查隊(duì)列的時(shí)候,如果發(fā)現(xiàn)到期任務(wù)則立即執(zhí)行;對(duì)于周期性任務(wù),則在每次執(zhí)行之后會(huì)修改開始執(zhí)行時(shí)間,然后再次插入隊(duì)列中,等待被調(diào)用執(zhí)行。本發(fā)明具有通用高效的特點(diǎn)。
文檔編號(hào)G06F9/48GK102129393SQ20111005543
公開日2011年7月20日 申請(qǐng)日期2011年3月9日 優(yōu)先權(quán)日2011年3月9日
發(fā)明者劉小明 申請(qǐng)人:南京恩瑞特實(shí)業(yè)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1