• 
    <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
    主站蜘蛛池模板: 久久天堂av综合色无码专区| 亚洲AV永久无码精品一百度影院| 国产午夜片无码区在线播放| 日韩网红少妇无码视频香港| 国产乱人伦无无码视频试看| 日日日日做夜夜夜夜无码| 无码国内精品久久人妻蜜桃| 国产成人无码免费视频97 | 97无码免费人妻超级碰碰夜夜| 亚洲高清无码综合性爱视频| 亚洲AV无码专区在线播放中文| 无码日韩AV一区二区三区| 亚洲国产精品无码中文字| 无码国产69精品久久久久孕妇| 无码国产福利av私拍| 中文无码vs无码人妻| 成年轻人电影www无码| 久久亚洲AV成人出白浆无码国产| 日韩少妇无码喷潮系列一二三 | 免费VA在线观看无码| 中文AV人妻AV无码中文视频| 伊人久久精品无码av一区| 东京热人妻无码人av| 日韩夜夜高潮夜夜爽无码| 亚洲AV综合色区无码一二三区| 日韩人妻无码精品一专区| 无码欧精品亚洲日韩一区| 亚洲日韩激情无码一区| 人妻丰满熟妇aⅴ无码| 亚洲AⅤ永久无码精品AA| 亚洲不卡无码av中文字幕| 国产精品久久无码一区二区三区网| 精品无码av一区二区三区| 久久精品中文无码资源站| 亚洲Av无码专区国产乱码DVD| 亚洲国产精品无码久久久不卡| 狠狠躁天天躁中文字幕无码| 免费a级毛片无码a∨免费软件| 亚洲av无码一区二区三区乱子伦| 亚洲色中文字幕无码AV| 无码AV中文字幕久久专区|