[發明專利]一種實現定時器服務的方法和裝置有效
| 申請號: | 201810044326.2 | 申請日: | 2018-01-17 |
| 公開(公告)號: | CN108255515B | 公開(公告)日: | 2021-02-02 |
| 發明(設計)人: | 全佳;黃昌金 | 申請(專利權)人: | 廣州匯智通信技術有限公司 |
| 主分類號: | G06F9/30 | 分類號: | G06F9/30 |
| 代理公司: | 北京集佳知識產權代理有限公司 11227 | 代理人: | 羅滿 |
| 地址: | 510639 廣東省廣州市天*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 實現 定時器 服務 方法 裝置 | ||
本發明實施例公開了一種實現定時器服務的方法和裝置,定時器進程接收業務進程發送的定時器添加請求;依據所述定時器添加請求中攜帶的定時信息,配置相應的定時器對象;當所述定時器對象完成計時任務后,向所述業務進程發送超時消息。將定時器模塊從業務進程中分離出來,以獨立進程的方式運行,對于業務進程來說,定時器進程是一個異步任務,不會搶占資源,所以業務進程可以更專注處理業務流程,提高了業務進程處理性能。并且業務進程不需要為定時器進程創建線程,減少了線程鎖帶來的性能下降,簡化了軟件架構設計的難度,提高了開發效率并減輕后期維護難度。
技術領域
本發明涉及網絡軟件開發技術領域,特別是涉及一種實現定時器服務的方法和裝置。
背景技術
在網絡軟件開發中,經常用到定時控制,比如超時處理、延時控制和定時任務等。尤其在網絡通信開發中,對定時的需求很大。為了獲得所需要的定時控制,需要在軟件中進行準確而穩定的時間控制,實現的模塊通常被稱為定時器。定時器的實現一般有兩種方法:硬件定時器和軟件定時器。
硬件定時器指專門的硬件模塊,能根據硬件時鐘周期性發出中斷信號觸發軟件處理,但是硬件定時器需要依賴硬件設計、資源有限,可移植性不好。
軟件定時器是用軟件方式來實現,一般可以使用操作系統提供的定時器接口或只使用定時器算法來實現。操作系統提供的定時器接口一般采用信號觸發或啟動線程來處理,對定時器的管理無法統一,對多模塊協作開發和后期維護帶來不便。所以軟件項目一般都采用純軟件算法實現的定時器模塊,封裝標準接口,作為一個獨立的模塊應用到各業務模塊開發中,大大降低了軟件設計的復雜性,便于開發和維護。
現有軟件架構設計中,一個應用進程中一般同時包含了業務模塊和定時器模塊,為了保證定時器準時觸發,定時器模塊在獨立的線程中運行,而業務模塊在其他線程中運行。
雖然為了提高定時器的效率,現已設計出多種適用于不同場景的定時器算法,例如基于最小堆、基于有序雙向列表和基于時間輪的算法,但是還是需要經常掃描定時器列表,消耗進程的CPU資源,特別是當大量定時器存在時,定時器的開銷就會影響正常業務。
定時器超時的時候,定時器模塊在定時器線程中調用業務模塊提供的超時處理函數,而超時處理函數可能會訪問業務數據,這就必須考慮多線程模式下的安全保護,例如對共享資源的互斥鎖、對狀態的同步等問題,增加了業務流程的復雜度,同時互斥鎖的使用也會增加系統開銷,降低進程的處理能力。
可見,如何在滿足定時控制的需求下,降低定時控制對業務流程的影響,是本領域技術人員亟待解決的問題。
發明內容
本發明實施例的目的是提供一種實現定時器服務的方法和裝置,可以在滿足定時控制的需求下,降低定時控制對業務流程的影響,提升應用進程處理業務的性能。
為解決上述技術問題,本發明實施例提供一種實現定時器服務的方法,應用于定時器進程,所述方法包括:
接收業務進程發送的定時器添加請求;
依據所述定時器添加請求中攜帶的定時信息,配置相應的定時器對象;
當所述定時器對象完成計時任務時,向所述業務進程發送超時消息。
可選的,還包括:
當所述定時器對象完成計時任務時,依據所述定時器對象的定時模式,對所述定時器對象進行相應的處理。
可選的,當所述定時模式為單次運行模式時,所述依據所述定時器對象的定時模式,對所述定時器對象進行相應的處理包括:
刪除所述定時器對象。
可選的,當所述定時模式為周期運行模式時,所述依據所述定時器對象的定時模式,對所述定時器對象進行相應的處理包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于廣州匯智通信技術有限公司,未經廣州匯智通信技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810044326.2/2.html,轉載請聲明來源鉆瓜專利網。





