[發(fā)明專(zhuān)利]基于內(nèi)存映射文件的跨進(jìn)程異步任務(wù)處理方法及系統(tǒng)在審
| 申請(qǐng)?zhí)枺?/td> | 202110321934.5 | 申請(qǐng)日: | 2021-03-25 |
| 公開(kāi)(公告)號(hào): | CN112965805A | 公開(kāi)(公告)日: | 2021-06-15 |
| 發(fā)明(設(shè)計(jì))人: | 吝曉軍;宋仁春 | 申請(qǐng)(專(zhuān)利權(quán))人: | 興業(yè)數(shù)字金融服務(wù)(上海)股份有限公司 |
| 主分類(lèi)號(hào): | G06F9/48 | 分類(lèi)號(hào): | G06F9/48;G06F12/0871;G06F12/0873 |
| 代理公司: | 上海段和段律師事務(wù)所 31334 | 代理人: | 李佳俊;郭國(guó)中 |
| 地址: | 200120 上海市*** | 國(guó)省代碼: | 上海;31 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 內(nèi)存 映射 文件 跨進(jìn) 異步 任務(wù) 處理 方法 系統(tǒng) | ||
本發(fā)明提供了一種基于內(nèi)存映射文件的跨進(jìn)程異步任務(wù)處理方法及系統(tǒng),包括:步驟S1:主交易進(jìn)程調(diào)用異步任務(wù)信息記錄模塊將需要處理的異步任務(wù)寫(xiě)入任務(wù)存儲(chǔ)模塊中;步驟S2:異步任務(wù)信息處理模塊從任務(wù)存儲(chǔ)模塊中讀取待處理的異步任務(wù)進(jìn)行處理。本發(fā)明通過(guò)采用內(nèi)存映射文件記錄待處理任務(wù)的機(jī)制,實(shí)現(xiàn)跨進(jìn)程任務(wù)登記和處理,主交易進(jìn)程高效登記待處理任務(wù),任務(wù)處理進(jìn)程異步處理任務(wù),既解決了額外附加的操作處理,又不影響主交易的性能,解決了各種高并發(fā)交易的附加操作,如日志記錄、流量統(tǒng)計(jì)、異步消息發(fā)送等業(yè)務(wù)場(chǎng)景。
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)通信技術(shù)領(lǐng)域,具體地,涉及一種基于內(nèi)存映射文件的跨進(jìn)程異步任務(wù)處理解決方案。
背景技術(shù)
目前解決高并發(fā)異步處理任務(wù)比較流程的辦法為消息隊(duì)列,一般做法為主交易作為消息生產(chǎn)者將需要做的任務(wù)發(fā)送到消息隊(duì)列,由消息消費(fèi)者異步處理任務(wù),這種方式需要消息中間件支撐,有以下缺點(diǎn):
1.消息中間件過(guò)于龐大,需要單獨(dú)部署,對(duì)整個(gè)系統(tǒng)架構(gòu)帶來(lái)額外開(kāi)銷(xiāo),不適合體量較小的應(yīng)用,且消息中間件本身技術(shù)復(fù)雜,需要專(zhuān)門(mén)的人員對(duì)其進(jìn)行調(diào)優(yōu),技術(shù)成本比較大
2.消息中間件一般消息的發(fā)送和接收均需要通過(guò)網(wǎng)絡(luò)通訊,其性能低于本方案采用的內(nèi)存映射文件讀寫(xiě)
3.消息中間件需要開(kāi)啟持久化來(lái)保障可靠性,進(jìn)一步影響了消息發(fā)送接收的性能,本方案采用內(nèi)存映射存儲(chǔ),既滿足了持久化可靠性,又不影響讀寫(xiě)性能。
專(zhuān)利文獻(xiàn)CN109254845A(申請(qǐng)?zhí)枺?01810847512.X)公開(kāi)了一種應(yīng)用于分布式通信計(jì)算服務(wù)端的線性擴(kuò)展實(shí)現(xiàn)方法,該方法充分的將Server主進(jìn)程的各種功能拆分出來(lái),采用微服務(wù)的方式,使每一種功能形成一個(gè)進(jìn)程,進(jìn)程內(nèi)再根據(jù)不同功能的特點(diǎn),劃分出若干多線程,來(lái)處理具體的邏輯任務(wù),進(jìn)程彼此之間是獨(dú)立運(yùn)行的,互不干擾,進(jìn)程間通信使用需要傳送的必要數(shù)據(jù)作為上下文,進(jìn)程之間使用Socket進(jìn)行通信。本發(fā)明通過(guò)CPU占用率、網(wǎng)絡(luò)寬帶使用情況、用戶在線數(shù),提供一個(gè)合理的負(fù)載均衡算法;通過(guò)復(fù)用Socket實(shí)現(xiàn)了跨進(jìn)程的通信,隔離了多個(gè)用戶的同時(shí)操作,極大地緩解了單進(jìn)程模型的壓力;通過(guò)線程池,充分的利用了硬件上的所有CPU資源,極大地降低了服務(wù)器部署成本。
發(fā)明內(nèi)容
針對(duì)現(xiàn)有技術(shù)中的缺陷,本發(fā)明的目的是提供一種基于內(nèi)存映射文件的跨進(jìn)程異步任務(wù)處理方法及系統(tǒng)。
根據(jù)本發(fā)明提供的一種基于內(nèi)存映射文件的跨進(jìn)程異步任務(wù)處理方法,包括:
步驟S1:主交易進(jìn)程調(diào)用異步任務(wù)信息記錄模塊將需要處理的異步任務(wù)寫(xiě)入任務(wù)存儲(chǔ)模塊中;
步驟S2:異步任務(wù)信息處理模塊從任務(wù)存儲(chǔ)模塊中讀取待處理的異步任務(wù)進(jìn)行處理。
優(yōu)選地,所述步驟S1中任務(wù)存儲(chǔ)模塊包括:N個(gè)存儲(chǔ)組,每個(gè)存儲(chǔ)組包括任務(wù)信息存儲(chǔ)文件和任務(wù)信息索引文件;
所述任務(wù)信息存儲(chǔ)文件被格式化成多個(gè)存儲(chǔ)單元,每個(gè)存儲(chǔ)單元存儲(chǔ)一個(gè)任務(wù)信息,占用固定的空間;
所述任務(wù)信息索引文件記錄每個(gè)存儲(chǔ)單元的狀態(tài),組成一個(gè)循環(huán)鏈表按順序存儲(chǔ)待處理的任務(wù)信息。
優(yōu)選地,所述步驟S1包括:鎖定任務(wù)存儲(chǔ)模塊中一個(gè)存儲(chǔ)組,查找存儲(chǔ)組的任務(wù)信息索引文件的循環(huán)鏈表,在待處理單元后面最近的空閑存儲(chǔ)單元進(jìn)行記錄,記錄后將當(dāng)前存儲(chǔ)單元設(shè)置為待處理。
優(yōu)選地,所述步驟S2包括:在異步任務(wù)處理進(jìn)程中,當(dāng)前異步任務(wù)處理進(jìn)程與主交易進(jìn)程運(yùn)行在同一個(gè)服務(wù)器中。
優(yōu)選地,所述步驟S2包括:針對(duì)任務(wù)存儲(chǔ)模塊中每一個(gè)存儲(chǔ)組創(chuàng)建一個(gè)線程,當(dāng)前線程負(fù)責(zé)順序讀取存儲(chǔ)組的任務(wù)信息索引文件的循環(huán)鏈表,查找最前面的狀態(tài)為待處理的任務(wù),任務(wù)處理線程池執(zhí)行最前面的狀態(tài)為待處理的任務(wù),在處理完成后將任務(wù)存儲(chǔ)單元狀態(tài)設(shè)置為空閑。
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于興業(yè)數(shù)字金融服務(wù)(上海)股份有限公司,未經(jīng)興業(yè)數(shù)字金融服務(wù)(上海)股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110321934.5/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 同類(lèi)專(zhuān)利
- 專(zhuān)利分類(lèi)





