[發明專利]業務處理方法和裝置在審
| 申請號: | 201811382764.6 | 申請日: | 2018-11-20 |
| 公開(公告)號: | CN111198751A | 公開(公告)日: | 2020-05-26 |
| 發明(設計)人: | 張晉軍;劉海鋒;何小鋒 | 申請(專利權)人: | 北京京東尚科信息技術有限公司;北京京東世紀貿易有限公司 |
| 主分類號: | G06F9/46 | 分類號: | G06F9/46;G06F16/23;G06F16/28 |
| 代理公司: | 中原信達知識產權代理有限責任公司 11219 | 代理人: | 張一軍;張效榮 |
| 地址: | 100086 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 業務 處理 方法 裝置 | ||
1.一種業務處理方法,所述業務包括第一流程和第二流程,所述第一流程對應于關系型數據庫操作,所述第二流程對應于非關系型數據庫操作,其特征在于,所述方法包括:
對業務進行事務注解,以聲明對所述業務的第一流程和第二流程分別作為分布式事務的分支事務進行處理;
開啟全局事務;
根據所述事務注解,確定所述第二流程對應的消息數據,并將所述消息數據添加至第二數據庫;
確認所述消息數據添加完成后,根據所述事務注解,確定所述第一流程對應的業務數據,并將所述業務數據添加至第一數據庫;
確認所述業務數據添加完成后,結束所述全局事務;
根據所述第二數據庫中的消息數據,生成消息并發送,以完成所述業務。
2.根據權利要求1所述的方法,其特征在于,所述消息數據添加至第二數據庫包括:根據所述消息數據,在第二數據庫中添加任務記錄,并設置所述任務記錄的事務狀態為第一狀態、執行狀態為未執行;
所述方法還包括:在確認所述業務數據添加完成后,將所述任務記錄的事務狀態由第一狀態更新為第二狀態。
3.根據權利要求2所述的方法,所述方法還包括:當所述業務包括多個第二流程時,若所述多個第二流程中任意一個第二流程對應的消息數據添加失敗,則將所述業務所有的第二流程對應的任務記錄刪除。
4.根據權利要求2所述的方法,其特征在于,根據所述第二數據庫中的消息數據,生成消息并發送包括:
根據所述第二數據庫中事務狀態為第二狀態、執行狀態為未執行的任務記錄,生成消息并發送;
確認所述消息發送成功之后,將所述任務記錄的執行狀態由未執行更新為執行成功。
5.根據權利要求4所述的方法,其特征在于,所述方法還包括:
若所述消息發送失敗,則將所述任務記錄的執行狀態更新為需重試;
基于重試機制,將事務狀態為第二狀態、執行狀態為需重試的任務記錄,生成消息并發送。
6.根據權利要求3所述的方法,其特征在于,所述任務記錄包括事務標識和任務標識;
所述開啟全局事務包括:在第三數據庫中添加全局事務記錄,以開啟全局事務;其中,所述全局事務記錄包括事務標識、所述業務所包含的第一流程和第二流程的任務標識;
將所述業務所有的第二流程對應的任務記錄刪除包括:
確定添加消息數據失敗的第二流程的事務標識,將所述事務標識作為目標標識;
將第二數據庫中事務標識與目標標識相同的任務記錄刪除。
7.根據權利要求6所述的方法,其特征在于,所述方法還包括:
在第三數據庫添加全局事務記錄時,設置所述全局事務記錄的事務狀態為第一狀態,和在確認業務數據添加完成后,將所述全局事務記錄的事務狀態更新為第二狀態,以及在確認消息數據添加失敗時,將所述全局事務的事務狀態更新為第三狀態,以記錄所述業務的狀態。
8.根據權利要求1所述的方法,其特征在于,根據所述事務注解,確定所述第二流程對應的消息數據包括:根據面向切面編程對業務的事務注解進行環繞通知,以確定所述第二流程對應的消息數據;
根據所述事務注解,確定所述第一流程對應的業務數據包括:根據面向切面編程對業務的事務注解進行環繞通知,以確定所述第一流程對應的業務數據。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京京東尚科信息技術有限公司;北京京東世紀貿易有限公司,未經北京京東尚科信息技術有限公司;北京京東世紀貿易有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811382764.6/1.html,轉載請聲明來源鉆瓜專利網。





