[發明專利]任務處理方法和裝置有效
| 申請號: | 201010299851.2 | 申請日: | 2010-09-29 |
| 公開(公告)號: | CN101963922A | 公開(公告)日: | 2011-02-02 |
| 發明(設計)人: | 王昊沙 | 申請(專利權)人: | 用友軟件股份有限公司 |
| 主分類號: | G06F9/46 | 分類號: | G06F9/46;G06F9/52 |
| 代理公司: | 北京友聯知識產權代理事務所(普通合伙) 11343 | 代理人: | 尚志峰;汪海屏 |
| 地址: | 100094 北京*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 任務 處理 方法 裝置 | ||
技術領域
本發明涉及任務處理技術,尤其涉及任務處理方法和裝置。
背景技術
在企業管理軟件中,存在大量的異步任務,比如發送各種通知(消息,短信,電子郵件等),執行某些自動動作(自動調用服務等)。隨著用戶壓力的增加,在短時間內會產生大量的這些任務。已有的解決方法一般分為兩種:一種是將這些任務排入一個先入先出(FIFO)隊列,然后一個個按順序執行;另外一種則是通過一個線程池,多線程的將任務并行執行。前者的優點是不會由于任務過多而占用大量的系統資源,缺點是浪費了計算機并行處理能力,效率低下。后者的優點是盡可能的最大化利用了系統的并行計算能力,但缺點也很明顯,一方面由于同時執行的任務可能存在約束或競爭關系,導致需要線程同步,就帶來了額外的系統開銷(線程切換,鎖競爭等),在任務之間約束和競爭關系比較多的情況下,反而會造成系統效率低下,另一方面由于大部分線程池無法提供很好的伸縮性(負載可控),造成大負載情況下對系統資源的過度占用,極大的影響了用戶體驗。
因此,需要一種任務處理方式,能夠最大限度地利用計算機的并行能力,而又避免由于任務之間的約束帶來的線程同步,耗費系統資源的問題。
發明內容
鑒于以上,本發明的技術方案所要解決的技術問題在于,提供一種任務處理方法和裝置,能夠最大限度地利用計算機的并行能力,而又避免由于任務之間的約束帶來的線程同步,耗費系統資源的問題。
本發明提供了一種任務處理方法,包括:步驟102,接收輸入的任務;步驟104,判斷所述任務是否具有同步屬性,在所述任務具有同步屬性時,進入步驟106,在所述任務不具有同步屬性時,進入步驟110;所述步驟106,根據所述任務的同步屬性,在當前執行任務中查找所述任務對應的排他任務;步驟108,在當前執行任務中存在所述任務對應的排他任務時,不執行所述任務,直至所述當前執行任務中不存在所述任務對應的排他任務,所述步驟110,執行所述任務。通過該技術方案,可以避免同時執行任務時由于相互競爭導致對系統資源的爭奪,保證了執行任務的次序和效率,合理利用計算機的系統資源。
在上述技術方案中,優選地,所述步驟108中,在當前執行任務中存在所述任務對應的排他任務時,根據所述任務的同步屬性,將所述任務分配至對應的排他隊列,在所述當前執行任務中不存在所述任務對應的排他任務時,從所述任務對應的排他隊列里取出所述任務,以待執行。
在上述技術方案中,優選地,排他隊列中的所有任務均具有優先級,從所述排他隊列中取出任務時,先取出優先級最高的任務。通過該技術方案,通過優先級調節,保證了任務執行的次序。
在上述技術方案中,優選地,在所述步驟110中,所述任務通過線程池提供的線程執行。
在上述技術方案中,優選地,在所述步驟110中,所述當前執行任務占用所述線程池的所有線程時,使所述任務進入等待狀態,直至所述線程池中存在空余線程,使用所述空余線程執行所述任務。通過該技術方案,可以很好地控制系統的伸縮性。
在上述技術方案中,優選地,處于所述等待狀態的所有任務均具有優先級,在所述線程池里僅出現一個空余線程時,將所述一個空余線程用于執行優先級最高的任務。通過該技術方案,使得等待隊列中的任務也具有優先級。
在上述技術方案中,優選地,所述步驟108中,所述任務具有多個同步屬性,以及在當前執行任務中存在對應任務的不同同步屬性的多個排他任務,根據所述不同同步屬性的優先程度,將所述任務分配至優先程度最高的同步屬性對應的排他隊列,排他隊列包括:全局排他隊列,所述全局排他隊列中的任務只能單獨執行;類別排他隊列,所述類別排他隊列中的任務不能與所述類別排他隊列對應類型的任務同時執行。
通過上述技術方案,通過實現同步隊列將具有約束關系的任務進行同步排隊,避免了任務之間的競爭,然后利用優先級調節隊列中任務的執行滯后性,同時通過等待隊列和設置任務數可同時執行任務的最大數目,使負載能力可控,具有良好的系統伸縮性。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于用友軟件股份有限公司,未經用友軟件股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010299851.2/2.html,轉載請聲明來源鉆瓜專利網。





