[發明專利]一種任務處理方法和裝置在審
| 申請號: | 202110315805.5 | 申請日: | 2021-03-24 |
| 公開(公告)號: | CN113051055A | 公開(公告)日: | 2021-06-29 |
| 發明(設計)人: | 程浩 | 申請(專利權)人: | 北京沃東天駿信息技術有限公司;北京京東世紀貿易有限公司 |
| 主分類號: | G06F9/48 | 分類號: | G06F9/48;G06F11/14 |
| 代理公司: | 中原信達知識產權代理有限責任公司 11219 | 代理人: | 張一軍;韓黎捷 |
| 地址: | 100176 北京市北京經濟技術*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 任務 處理 方法 裝置 | ||
本發明公開了一種任務處理方法和裝置,涉及計算機技術領域。該方法的一具體實施方式包括:確定是否需要寫入任務快照,如果是,對線程池中的任務進行序列化,得到所述任務快照;存儲所述任務快照;確定是否需要恢復所述任務快照,如果是,讀取所述任務快照;對所述任務快照進行反序列化,得到所述任務;將所述任務提交到所述線程池中。該實施方式能夠降低關閉服務所需的等待時間,快速恢復任務執行,防止任務丟失。
技術領域
本發明涉及計算機技術領域,尤其涉及一種任務處理方法和裝置。
背景技術
在后端開發過程中,通常采用線程池并行處理任務。當服務需要重啟或重新部署時,為了保證線程池中的任務不丟失,現有技術通過回調函數處理線程池中剩余的任務。
具體地,hook線程在接收到服務的關閉信號后,檢查線程池中是否存在未執行完成的任務,如果存在,則線程池繼續執行任務,否則,hook線程通知服務關閉。也就是說,現有技術需要等待線程池中的任務執行結束,才能夠關閉服務,如果任務比較多或者執行過程存在問題,則需要耗費較長的時間才能夠關閉服務。
發明內容
有鑒于此,本發明實施例提供一種任務處理方法和裝置,能夠降低關閉服務所需的等待時間,快速恢復任務執行,防止任務丟失。
第一方面,本發明實施例提供了一種任務處理方法,包括:
確定是否需要寫入任務快照,如果是,對線程池中的任務進行序列化,得到所述任務快照;
存儲所述任務快照;
確定是否需要恢復所述任務快照,如果是,讀取所述任務快照;
對所述任務快照進行反序列化,得到所述任務;
將所述任務提交到所述線程池中。
可選地,
所述確定是否需要寫入任務快照,包括:
確定預設的快照狀態機的狀態是否為開啟;
所述確定是否需要恢復所述任務快照,包括:
確定所述快照狀態機的狀態是否為關閉。
可選地,
所述存儲所述任務快照,包括:
將多個任務快照添加到內存中;
將所述內存中的多個任務快照寫入磁盤的指定文件中;
所述讀取所述任務快照,包括:
從所述磁盤的指定文件中讀取多個任務快照,并添加到內存中。
可選地,
所述存儲所述任務快照,包括:
將多個任務快照添加到內存中;
將所述內存中的多個任務快照寫入數據庫的指定文件中;
所述讀取所述任務快照,包括:
從所述數據庫的指定文件中讀取多個任務快照,并添加到內存中。
可選地,
在所述將所述任務提交到所述線程池中之后,進一步包括:
刪除存儲的所述任務快照。
可選地,
在所述內存中,所述多個任務快照以具有鎖的list數據結構存儲。
可選地,
所述確定是否需要寫入任務快照,包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京沃東天駿信息技術有限公司;北京京東世紀貿易有限公司,未經北京沃東天駿信息技術有限公司;北京京東世紀貿易有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110315805.5/2.html,轉載請聲明來源鉆瓜專利網。





