專利名稱:定時器處理方法及系統的制作方法
技術領域:
本發明涉及網絡通信技術領域,特別涉及一種定時器處理方法及系統。
背景技術:
在測試Internet協議安全性(IPSEC)創建最大數時,需要在短時間內實現大量的IPSEC協商,此時設定I秒內協商20個IPSEC隧道,共協商2萬條,那么每個IPSEC隧道至少會創建一個因特網密鑰交換協議(IKE)安全關聯(Security Association,SA)超時定時器和一個IPSEC SA超時定時器,這樣就會在每秒注冊40個定時器,但定時器均由CPU觸發實現,而短時間內注冊4萬個定時器,對CPU的壓力極大,極大的影響了 CPU的性能
發明內容
(一)要解決的技術問題本發明要解決的技術問題是如何減少注冊定時器的總數量,以提高CPU的性能。(二)技術方案為解決上述技術問題,本發明提供了一種定時器處理方法,所述方法包括以下步驟SI :建立超時鏈表,所述超時鏈表中各個節點為需要進行處理的任務、且按超時時間進行排列;S2:新建定時器,將所述超時鏈表中當前節點的超時時間作為所述定時器的觸發時間,所述當前節點是在所述超時鏈表中距離當前時間最近的超時時間對應的節點。優選地,步驟S2之后還包括以下步驟S3:若當前時間到達所述定時器的觸發時間,則對所述當前節點相應的任務進行處理,并刪除所述超時鏈表中的當前節點,返回步驟S2,直至所述超時鏈表中沒有節點,再結束流程。優選地,步驟S3中對所述當前節點相應的任務進行處理后,若所述當前節點相應的任務需要再次進行處理,則根據所述當前節點需要再次處理的超時時間將所述當前節點插入所述超時鏈表中。優選地,所述任務為IKE SA任務或IPSEC SA任務。優選地,所述超時鏈表為雙向鏈表,所述超時鏈表的排列順序為鏈表頭的節點為距離當前時間最近的超時時間對應的節點、且鏈表尾的節點為距離當前時間最遠的超時時間對應的節點。優選地,當有新任務需要插入所述超時鏈表時,包括以下步驟獲取所述新任務的超時時間,根據所述新任務的超時時間將所述新任務作為節點插入所述超時鏈表中。優選地,若所述新任務的超時時間比所述定時器的觸發時間距離當前時間更近,則將所述定時器取消,建立新的定時器,并將所述新任務的超時時間作為新的定時器的觸發時間。本發明還公開了一種定時器處理系統,所述系統包括鏈表建立模塊,用于建立超時鏈表,所述超時鏈表中各個節點為需要進行處理的任務、且按超時時間進行排列;定時模塊,用于新建定時器,將所述超時鏈表中當前節點的超時時間作為所述定時器的觸發時間,所述當前節點是在所述超時鏈表中距離當前時間最近的超時時間對應的節點。優選地,所述系統還包括 處理模塊,用于若當前時間到達所述定時器的觸發時間,則對所述當前節點相應的任務進行處理,并刪除所述超時鏈表中的當前節點。優選地,所述處理模塊中對所述當前節點相應的任務進行處理后,若所述當前節點相應的任務需要再次進行處理,則根據所述當前節點需要再次處理的超時時間將所述當前節點插入所述超時鏈表中。(三)有益效果本發明通過超時鏈表記錄所有需要進行處理的定時器,并選擇與當前時間最接近的任務進行定時,使得在處理過程中只需建立一個定時器,減少了注冊定時器的總數量,提高了 CPU的性能。
圖I是按照本發明一種實施方式的定時器處理方法的流程圖;圖2是按照本發明一種實施方式的定時器處理系統的流程圖。
具體實施例方式下面結合附圖和實施例,對本發明的具體實施方式
作進一步詳細描述。以下實施例用于說明本發明,但不用來限制本發明的范圍。圖I是按照本發明一種實施方式的定時器處理方法的流程圖;參照圖1,所述方法包括以下步驟SI :建立超時鏈表,所述超時鏈表中各個節點為需要進行處理的任務、且按超時時間進行排列;本實施方式中,所述任務為IKE SA任務或IPSEC SA任務,但并不限定本發明的保護范圍。S2:新建定時器,將所述超時鏈表中當前節點的超時時間作為所述定時器的觸發時間,所述當前節點是在所述超時鏈表中距離當前時間最近的超時時間對應的節點。優選地,步驟S2之后還包括以下步驟S3:若當前時間到達所述定時器的觸發時間,則對所述當前節點相應的任務進行處理(本實施方式中,定時器處理完所述當前節點后,以秒為單位,判斷下一個節點是否此時也需要處理,如果I秒創建20個節點,那么此時就會出現連續處理20個節點的狀況,處理節點都是以秒為單位),并刪除所述超時鏈表中的當前節點,返回步驟S2,直至所述超時鏈表中沒有節點,再結束流程。由于有些任務需要進行循環處理,優選地,步驟S3中對所述當前節點相應的任務進行處理后,若所述當前節點相應的任務需要再次進行處理,則根據所述當前節點需要再次處理的超時時間將所述當前節點插入所述超時鏈表中。優選地,所述超時鏈表為雙向鏈表,所述超時鏈表的排列順序為鏈表頭的節點為距離當前時間最近的超時時間對應的節點、且鏈表尾的節點為距離當前時間最遠的超時時間對應的節點。優選地,當有新任務需要插入所述超時鏈表時,包括以下步驟獲取所述新任務的超時時間,根據所述新任務的超時時間將所述新任務作為節點插入所述超時鏈表中。本實施方式中,假設協商生成IKE SA任務為上午10點,需要插入所述IKE SA任務時,先獲取所述IKE SA任務的超時時間為上午10點,再查找鏈表上超時時間在10點之前的節點,一般有以下三種情況
I、所述超時鏈表中沒有節點,則將IKE SA任務插入所述超時鏈表中,并新建定時器,將所述IKE SA任務的超時時間作為所述定時器的觸發時間。2、所述超時鏈表上共有m個節點,有n個節點(n〈m)超時時間在10點之前,則將所述IKE SA任務作為節點插入第n個節點的后面。3、所述超時鏈表上共有m個節點,但超時時間沒有10點前的節點,則將所述IKESA任務添加到所述超時鏈表的第一個節點上,并將所述定時器取消,建立新的定時器,將所述IKE SA任務的超時時間作為新的定時器的觸發時間。優選地,若所述新任務的超時時間比所述定時器的觸發時間距離當前時間更近,則將所述定時器取消,建立新的定時器,并將所述新任務的超時時間作為新的定時器的觸發時間。圖2是按照本發明一種實施方式的定時器處理系統的流程圖;參照圖2,本發明還公開了一種定時器處理系統,所述系統包括鏈表建立模塊,用于建立超時鏈表,所述超時鏈表中各個節點為需要進行處理的任務、且按超時時間進行排列;定時模塊,用于新建定時器,將所述超時鏈表中當前節點的超時時間作為所述定時器的觸發時間,所述當前節點是在所述超時鏈表中距離當前時間最近的超時時間對應的節點。優選地,所述系統還包括處理模塊,用于若當前時間到達所述定時器的觸發時間,則對所述當前節點相應的任務進行處理,并刪除所述超時鏈表中的當前節點。優選地,所述處理模塊中對所述當前節點相應的任務進行處理后,若所述當前節點相應的任務需要再次進行處理,則根據所述當前節點需要再次處理的超時時間將所述當前節點插入所述超時鏈表中。以上實施方式僅用于說明本發明,而并非對本發明的限制,有關技術領域的普通技術人員,在不脫離本發明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有等同的技術方案也屬于本發明的范疇,本發明的專利保護范圍應由權利要求限定。
權利要求
1.一種定時器處理方法,其特征在于,所述方法包括以下步驟 Si:建立超時鏈表,所述超時鏈表中各個節點為需要進行處理的任務、且按超時時間進行排列; S2:新建定時器,將所述超時鏈表中當前節點的超時時間作為所述定時器的觸發時間,所述當前節點是在所述超時鏈表中距離當前時間最近的超時時間對應的節點。
2.如權利要求I所述的方法,其特征在于,步驟S2之后還包括以下步驟 S3:若當前時間到達所述定時器的觸發時間,則對所述當前節點相應的任務進行處理,并刪除所述超時鏈表中的當前節點,返回步驟S2,直至所述超時鏈表中沒有節點,再結束流程。
3.如權利要求2所述的方法,其特征在于,步驟S3中對所述當前節點相應的任務進行處理后,若所述當前節點相應的任務需要再次進行處理,則根據所述當前節點需要再次處理的超時時間將所述當前節點插入所述超時鏈表中。
4.如權利要求2所述的方法,其特征在于,所述任務為IKESA任務或IPSEC SA任務。
5.如權利要求1 4中任一項所述的方法,其特征在于,所述超時鏈表為雙向鏈表,所述超時鏈表的排列順序為鏈表頭的節點為距離當前時間最近的超時時間對應的節點、且鏈表尾的節點為距離當前時間最遠的超時時間對應的節點。
6.如權利要求5所述的方法,其特征在于,當有新任務需要插入所述超時鏈表時,包括以下步驟 獲取所述新任務的超時時間,根據所述新任務的超時時間將所述新任務作為節點插入所述超時鏈表中。
7.如權利要求6所述的方法,其特征在于,若所述新任務的超時時間比所述定時器的觸發時間距離當前時間更近,則將所述定時器取消,建立新的定時器,并將所述新任務的超時時間作為新的定時器的觸發時間。
8.一種定時器處理系統,其特征在于,所述系統包括 鏈表建立模塊,用于建立超時鏈表,所述超時鏈表中各個節點為需要進行處理的任務、且按超時時間進行排列; 定時模塊,用于新建定時器,將所述超時鏈表中當前節點的超時時間作為所述定時器的觸發時間,所述當前節點是在所述超時鏈表中距離當前時間最近的超時時間對應的節點。
9.如權利要求8所述的系統,其特征在于,所述系統還包括 處理模塊,用于若當前時間到達所述定時器的觸發時間,則對所述當前節點相應的任務進行處理,并刪除所述超時鏈表中的當前節點。
10.如權利要求9所述的系統,其特征在于,所述處理模塊中對所述當前節點相應的任務進行處理后,若所述當前節點相應的任務需要再次進行處理,則根據所述當前節點需要再次處理的超時時間將所述當前節點插入所述超時鏈表中。
全文摘要
本發明公開了一種定時器處理方法及系統,涉及網絡通信技術領域,所述方法包括以下步驟S1建立超時鏈表,所述超時鏈表中各個節點為需要進行處理的任務、且按超時時間進行排列;S2新建定時器,將所述超時鏈表中當前節點的超時時間作為所述定時器的觸發時間,所述當前節點是在所述超時鏈表中距離當前時間最近的超時時間對應的節點。本發明通過超時鏈表記錄所有需要進行處理的定時器,并選擇與當前時間最接近的任務進行定時,使得在處理過程中只需建立一個定時器,減少了注冊定時器的總數量,提高了CPU的性能。
文檔編號H04L29/06GK102761541SQ20121017847
公開日2012年10月31日 申請日期2012年5月31日 優先權日2012年5月31日
發明者陳海濱 申請人:漢柏科技有限公司