[發明專利]一種多任務處理方法方法、系統和介質在審
| 申請號: | 202011622611.1 | 申請日: | 2020-12-30 |
| 公開(公告)號: | CN112732424A | 公開(公告)日: | 2021-04-30 |
| 發明(設計)人: | 葉山茂;趙晶;喻波;王志海;安鵬 | 申請(專利權)人: | 北京明朝萬達科技股份有限公司 |
| 主分類號: | G06F9/48 | 分類號: | G06F9/48;G06F9/50;G06F9/54;G06F11/14 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 100142 北京市海淀區*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 任務 處理 方法 系統 介質 | ||
本發明提供一種多任務處理方法方法、系統和介質。所述方法包括:步驟S1、基于存儲在任務庫中的系統任務的元數據,從各個所述系統任務中按比例抽取部分子任務至任務隊列,所述系統任務關聯有至少一個獨立的子任務;步驟S2、讀取所述任務隊列中的被抽取的子任務以執行處理,并記錄所述處理的執行狀態;以及步驟S3、基于所述執行狀態,啟動重啟程序;其中所述元數據為所述系統任務關聯的子任務的數量。該方法增加了每個系統任務的運行頻率,并降低了長任務的運行風險。
技術領域
本發明涉及任務處理領域,尤其是涉及一種多任務處理方法方法、系統和介質。
背景技術
在計算機應用程序中,往往會遇到存在很多業務邏輯層面的任務單元的情況,而其中某些任務自身體量比較大,并且可劃分一系列子任務。在程序處理所有任務整個過程中,一般有這樣一個過程:生產者把所有任務存放到任務隊列,消費者從任務隊列讀取到任務進行處理。其中,生產者指生產任務的模塊;消費者指處理任務的模塊;任務隊列即存放任務的容器,作為隊列,具有先進先出的特性。生成者生成任務放入到隊列中,消費者從隊列獲取任務進行處理。系統資源通常包括操作系統資源,如cpu、內存等;也包括業務系統資源,比如任務處理器,線程池等程序級別的任務處理單元。
程序在處理任務隊列過程中,可能會出現消費者的處理速度趕不上生產者的處理速度,導致任務堆積,系統運行進而出現異常導致程序人為或自動重啟。極端情況下可能會出現這樣一個循環:生產者創造任務-添加到任務隊列-消費者消費隊列-任務堆積-系統異常重啟-生產者創造任務,這樣導致的結果便是,一部分先加入隊列的任務得到執行,而后加入的任務永遠得不到執行,即任務餓死,造成程序一直陷于異常重啟這樣一個死循環狀態。而現有的操作系統線程調度方法和CPU時間分片方法顯然無法解決上述問題。
發明內容
本發明的目的在于提供一種多任務處理方案,以解決現有技術中存在的上述技術問題。
本發明第一方面提供了一種多任務處理方法,所述方法包括:步驟S1、基于存儲在任務庫中的系統任務的元數據,從各個所述系統任務中按比例抽取部分子任務至任務隊列,所述系統任務關聯有至少一個獨立的子任務;步驟S2、讀取所述任務隊列中的被抽取的子任務以執行處理,并記錄所述處理的執行狀態;以及步驟S3、基于所述執行狀態,啟動重啟程序;其中所述元數據為所述系統任務關聯的子任務的數量。
根據本發明第一方面提供的方法,在所述步驟S2中,執行所述處理包括多線程并行執行所述被抽取的子任務,當多個所述被抽取的子任務同步訪問同一對象時,獲得所述對象的唯一訪問鑰匙的子任務優先訪問所述對象。
根據本發明第一方面提供的方法,所述步驟S3具體包括:任一所述執行狀態為異常狀態時,啟動所述重啟程序;以及所述重啟程序被執行后,優先執行所述執行狀態為異常狀態的系統任務;其中確定所述執行狀態為異常狀態包括:獲取所述被抽取的子任務的執行時間,當所述執行時間大于第一閾值且所述被抽取的子任務的執行狀態為未完成時,確定所述執行狀態為異常狀態。
根據本發明第一方面提供的方法,所述方法還包括:基于各個所述系統任務的被抽取的子任務的執行狀態,更新所述比例使得各個所述系統任務的執行進度偏差在閾值范圍內;其中:在當前被抽取的子任務被執行完畢后,降低與所述當前被抽取的子任務關聯的所述系統任務的執行優先級;以及在全部被抽取的子任務都被執行完畢后,恢復所述執行優先級,以重新分配下一輪次中從各個所述系統任務中抽取部分子任務的比例。
本發明第二方面提供了一種多任務處理系統,所述系統包括:抽取單元,被配置為,基于存儲在任務庫中的系統任務的元數據,從各個所述系統任務中按比例抽取部分子任務至任務隊列,所述系統任務關聯有至少一個獨立的子任務;執行單元,被配置為,讀取所述任務隊列中的被抽取的子任務以執行處理,并記錄所述處理的執行狀態;以及重啟單元,被配置為,基于所述執行狀態,更新所述比例或啟動重啟程序;其中所述元數據為所述系統任務關聯的子任務的數量。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京明朝萬達科技股份有限公司,未經北京明朝萬達科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011622611.1/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種兩棲型水面漂浮物處理裝置
- 下一篇:一種在廢羊毛提取角蛋白的方法





