• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    遍歷計時器的方法及裝置制造方法及圖紙

    技術編號:15052658 閱讀:145 留言:0更新日期:2017-04-05 23:26
    本發明專利技術公開了一種遍歷計時器的方法及裝置,涉及互聯網技術領域,為解決計時器遍歷效率低下的問題而發明專利技術。本發明專利技術的方法包括:構建計時器二叉樹,計時器二叉樹的節點數值為計時器的到時時刻值,節點數值大于父節點數值的子節點為父節點的右子節點,節點數值小于父節點數值的子節點為父節點的左子節點;從根節點開始遍歷,查找節點數值小于等于當前時刻值的目標節點;關閉目標節點對應的計時器。本發明專利技術主要用于對服務器內存使用的計時器進行遍歷。

    【技術實現步驟摘要】

    本專利技術涉及互聯網
    ,尤其涉及一種遍歷計時器的方法及裝置
    技術介紹
    終端在向服務器請求數據時,服務器會對數據庫進行訪問,從數據庫中獲取終端請求的數據內容并返回給終端。由于每次請求都會訪問數據庫,因此當請求并發數較大時,會對數據庫造成比較大的訪問壓力。為降低數據庫的訪問壓力,工程人員對現有技術進行了改進,將從數據庫中獲取的數據緩存在服務器內存中。當終端發起數據請求時,服務器在內存中查找終端請求的數據,如果查找到該數據則直接返回給終端,由此減少數據庫的訪問次數。通常,服務器端內存資源是十分寶貴的,無法將數據永久地存儲在服務器內存中。因此現有技術為內存中的數據建立了有效期機制,即為不同的數據設置不同的有效期,這個有效期是一個時長值,用以表征數據在內存中保存的時間長短。為監控數據是否過期,服務器需要為內存中的每條數據設置一個計時器(Timer),將上述有效期時長設置為計時器的計時時長。如果計時器到時,則觸發計時器事件,將對應的數據從內存中刪除。為及時釋放計時器任務,節省服務器的處理資源,服務器需要定期對計時器進行遍歷,查找并關閉到時的計時器。通常服務器遍歷計時器的周期為計時器的最小計時單位,例如1秒或10毫秒。也就是說,服務器會每隔1秒(甚至更短)對內存中所有的計時器進行一次遍歷。現有技術中,計時器列表是按照計時器建立的先后順序對所有計時器進行保存的。服務器每次遍歷計時器時,都需要將當前的系統時刻值與計時器列表中的每一個計時器的到時時刻值進行一次比對,關閉到時時刻值小于當前系統時刻值的計時器。這種遍歷計時器的方式效率非常低,實際應用中,當服務器內存中保存的數據較多時(例如十萬甚至百萬級別的數據),服務器每次都需要對十萬百萬個計時器進行遍歷,這會占用服務器的大量處理資源,嚴重影響服務器性能。
    技術實現思路
    本專利技術提供了一種遍歷計時器的方法及裝置,能夠解決計時器遍歷效率低下的問題。為解決上述問題,一方面,本專利技術提供了一種遍歷計時器的方法,該方法包括:構建計時器二叉樹,計時器二叉樹的節點數值為計時器的到時時刻值,節點數值大于父節點數值的子節點為父節點的右子節點,節點數值小于父節點數值的子節點為父節點的左子節點;從根節點開始遍歷,查找節點數值小于等于當前時刻值的目標節點;關閉目標節點對應的計時器。另一方面,本專利技術還提供了一種遍歷計時器的裝置,該裝置包括:構建單元,用于構建計時器二叉樹,計時器二叉樹的節點數值為計時器的到時時刻值,節點數值大于父節點數值的子節點為父節點的右子節點,節點數值小于父節點數值的子節點為父節點的左子節點;遍歷單元,用于從根節點開始遍歷,查找節點數值小于等于當前時刻值的目標節點;處理單元,用于關閉目標節點對應的計時器。本專利技術提供的遍歷計時器的方法及裝置,能夠根據計時器到時時刻值的大小構建計時器二叉樹,其中,節點數值大于父節點數值的子節點為父節點的右子節點,節點數值小于父節點數值的子節點為父節點的左子節點。在遍歷計時器時,通過對計時器二叉樹的遍歷查找到時的計時器。本專利技術中,計時器二叉樹根據節點數值的大小構建左右分支,當遍歷到計時器到時的節點時,可以將該節點左側分支的所有下級節點全部確定為目標節點,而無需繼續對這些節點依次進行遍歷。與現有技術相比,本專利技術能夠大大減少計時器的遍歷次數,提高計時器的遍歷效率,節省服務器的處理資源。上述說明僅是本專利技術技術方案的概述,為了能夠更清楚了解本專利技術的技術手段,而可依照說明書的內容予以實施,并且為了讓本專利技術的上述和其它目的、特征和優點能夠更明顯易懂,以下特舉本專利技術的具體實施方式。附圖說明通過閱讀下文優選實施方式的詳細描述,各種其他的優點和益處對于本領域普通技術人員將變得清楚明了。附圖僅用于示出優選實施方式的目的,而并不認為是對本專利技術的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:圖1示出了本專利技術實施例提供的一種遍歷計時器的方法流程圖;圖2a示出了本專利技術實施例提供的一種在計時器二叉樹中新增節點的示意圖;圖2b示出了本專利技術實施例提供的一種遍歷計時器二叉樹的示意圖;圖3示出了本專利技術實施例提供的另一種遍歷計時器的方法流程圖;圖4a示出了本專利技術實施例提供的一種計時器二叉樹的示意圖;圖4b示出了本專利技術實施例提供的另一種在計時器二叉樹中新增節點的示意圖;圖4c示出了本專利技術實施例提供的又一種在計時器二叉樹中新增節點的示意圖;圖4d示出了本專利技術實施例提供的一種對計時器二叉樹進行重新排序的示意圖;圖5示出了本專利技術實施例提供的一種遍歷計時器的裝置的組成框圖;圖6示出了本專利技術實施例提供的另一種遍歷計時器的裝置的組成框圖。具體實施方式下面將參照附圖更詳細地描述本專利技術公開的示例性實施例。雖然附圖中顯示了本專利技術公開的示例性實施例,然而應當理解,可以以各種形式實現本專利技術公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本專利技術,并且能夠將本專利技術公開的范圍完整的傳達給本領域的技術人員。本專利技術實施例提供了一種遍歷計時器的方法,該方法應用于服務器一側,主要用于對服務器內存使用的計時器進行遍歷。如圖1所示,該方法包括:101、構建計時器二叉樹。服務器為每一條緩存的數據對應啟動一個計時器,計時器的啟動時刻為數據存入到內存中的時刻,計時器的計時時長為數據的有效時長,而數據的有效時長又由數據的重要程度、請求頻率等因素決定,從幾秒鐘到幾個小時不等,不同數據的計時時長可以不同。從計時器的啟動時刻開始,經過計時時長后的時刻值,為計時器的到時時刻值。例如某條數據在13:04:12存入到內存中,服務器在13:04:12啟動計時器,計時器的計時時長為1分鐘,那么計時器的到時時刻值為13:05:12。本實施例中,服務器創建計時器二叉樹,該二叉樹用于記錄所有計時器的到時時刻值。其中,二叉樹的節點數量與服務器啟動的計時器數量相同,每個節點用于記錄一個計時器的到時時刻值。在節點排序上,本實施例采用“左小右大”的規則(實際應用中也可以使用“左大右小”規則),從二叉樹的根節點開始遍歷,將節點數值比父節點小的子節點,排列在父節點的左側分支,將節點數值比父節點大的子節點,排列在父節點的右側分支。每當新啟動一個計時器時,服務器就從根節點開始進行一次遍歷,確定新增節點的位置,將新增節點添加到計時器二叉樹中本文檔來自技高網
    ...

    【技術保護點】
    一種遍歷計時器的方法,其特征在于,所述方法包括:構建計時器二叉樹,所述計時器二叉樹的節點數值為計時器的到時時刻值,節點數值大于父節點數值的子節點為所述父節點的右子節點,節點數值小于父節點數值的子節點為所述父節點的左子節點;從根節點開始遍歷,查找節點數值小于等于當前時刻值的目標節點;關閉所述目標節點對應的計時器。

    【技術特征摘要】
    1.一種遍歷計時器的方法,其特征在于,所述方法包括:
    構建計時器二叉樹,所述計時器二叉樹的節點數值為計時器的到時時
    刻值,節點數值大于父節點數值的子節點為所述父節點的右子節點,節點
    數值小于父節點數值的子節點為所述父節點的左子節點;
    從根節點開始遍歷,查找節點數值小于等于當前時刻值的目標節點;
    關閉所述目標節點對應的計時器。
    2.根據權利要求1所述的方法,其特征在于,所述構建計時器二叉樹,
    包括:
    當新增計時器時,從所述根節點開始進行遍歷;
    若新增節點的節點數值小于當前節點的節點數值,則向左繼續遍歷;
    若新增節點的節點數值大于當前節點的節點數值,則向右繼續遍歷;
    當遍歷到最后一級節點時,增加所述新增節點;
    若新增節點的節點數值等于當前節點的節點數值,則將所述當前節點
    確定為所述新增計時器的節點。
    3.根據權利要求1所述的方法,其特征在于,所述從根節點開始遍歷,
    查找節點數值小于等于當前時刻值的目標節點,包括:
    若當前節點的節點數值小于等于所述當前時刻值,則將所述當前節點
    以及所述當前節點左側分支的所有下級節點,確定為所述目標節點;
    繼續遍歷所述當前節點右側分支的下級節點。
    4.根據權利要求3所述的方法,其特征在于,所述從根節點開始遍歷,
    查找節點數值小于等于當前時刻值的目標節點,包括:
    若當前節點的節點數值大于所述當前時刻值,則繼續遍歷所述當前節
    點左側分支的下級節點。
    5.根據權利要求1所述的方法,其特征在于,所述關閉所述目標節點
    對應的計時器,包括:
    獲取所述目標節點的節點標識;
    查找對應所述節點標識的計時器標識;
    根據所述計時器標識查找待關閉的計時器;...

    【專利技術屬性】
    技術研發人員:艾菲
    申請(專利權)人:北京奇虎科技有限公司北京奇安信科技有限公司
    類型:發明
    國別省市:北京;11

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 无码人妻精品一区二区三区99性| 黄A无码片内射无码视频| 精品无码成人片一区二区98| 久久久久久精品无码人妻| av无码国产在线看免费网站| 中文字幕在线无码一区 | 无码乱人伦一区二区亚洲一| 亚洲av无码专区在线观看下载| 国产在线无码精品无码| 久久午夜伦鲁片免费无码| 亚洲无码黄色网址| 亚洲精品9999久久久久无码| 国产AV无码专区亚洲AVJULIA | 亚洲色偷拍另类无码专区| 无码亚洲成a人在线观看| 日韩精品无码熟人妻视频| 中文国产成人精品久久亚洲精品AⅤ无码精品| 无码人妻精品一区二区三区66| 亚洲精品无码激情AV| 黄色成人网站免费无码av| 日韩精品专区AV无码| 人妻无码中文久久久久专区| 免费一区二区无码东京热| 无码激情做a爰片毛片AV片| 麻豆AV无码精品一区二区| 亚洲精品偷拍无码不卡av| 久久精品无码精品免费专区| 韩日美无码精品无码| 中文字幕无码精品三级在线电影| 日韩人妻无码精品无码中文字幕| 午夜福利无码一区二区| 少妇人妻偷人精品无码AV| 无码中文字幕av免费放| 久久亚洲精品无码av| 国产精品爽爽va在线观看无码| 曰韩无码无遮挡A级毛片| 国产午夜无码福利在线看网站| 亚洲AⅤ无码一区二区三区在线 | 亚洲热妇无码AV在线播放| 不卡无码人妻一区三区音频 | 无码无套少妇毛多69XXX|