本技術(shù)涉及計(jì)算機(jī),尤其涉及一種數(shù)據(jù)處理方法、裝置及電子設(shè)備。
背景技術(shù):
1、在銀行復(fù)雜的跨部門系統(tǒng)交互場景中,a系統(tǒng)向b系統(tǒng)發(fā)送調(diào)用請(qǐng)求,以調(diào)用b系統(tǒng)執(zhí)行特定任務(wù)。b系統(tǒng)在執(zhí)行完調(diào)用請(qǐng)求所對(duì)應(yīng)的任務(wù)(即特定任務(wù))后,向a系統(tǒng)發(fā)送回調(diào)請(qǐng)求報(bào)文,回調(diào)a系統(tǒng)。而a系統(tǒng)需在完成發(fā)送調(diào)用請(qǐng)求后的后續(xù)復(fù)雜處理邏輯后,才會(huì)響應(yīng)b系統(tǒng)的回調(diào)請(qǐng)求報(bào)文。
2、但是,b系統(tǒng)針對(duì)調(diào)用請(qǐng)求所對(duì)應(yīng)的任務(wù)的處理速度遠(yuǎn)超a系統(tǒng)在發(fā)送調(diào)用請(qǐng)求后的后續(xù)復(fù)雜邏輯的處理速度,導(dǎo)致b系統(tǒng)在執(zhí)行完a系統(tǒng)的調(diào)用請(qǐng)求所對(duì)應(yīng)的任務(wù)后,在嘗試回調(diào)a系統(tǒng)時(shí),a系統(tǒng)未能及時(shí)響應(yīng),從而造成b系統(tǒng)的回調(diào)失敗,進(jìn)而影響業(yè)務(wù)流程的順暢執(zhí)行,并引發(fā)數(shù)據(jù)不一致、服務(wù)超時(shí)等風(fēng)險(xiǎn)。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)提供了一種數(shù)據(jù)處理方法、裝置及電子設(shè)備,用以解決b系統(tǒng)在執(zhí)行完a系統(tǒng)的調(diào)用請(qǐng)求所對(duì)應(yīng)的任務(wù)后,在嘗試回調(diào)a系統(tǒng)時(shí),a系統(tǒng)未能及時(shí)響應(yīng),從而造成b系統(tǒng)的回調(diào)失敗,進(jìn)而影響業(yè)務(wù)流程的順暢執(zhí)行,并引發(fā)數(shù)據(jù)不一致、服務(wù)超時(shí)等風(fēng)險(xiǎn)的問題。具體實(shí)現(xiàn)方案如下:
2、第一方面,本技術(shù)提供了一種數(shù)據(jù)處理方法,應(yīng)用于第一系統(tǒng),所述方法包括:
3、響應(yīng)于執(zhí)行完第二系統(tǒng)發(fā)送的調(diào)用請(qǐng)求所對(duì)應(yīng)的任務(wù),將對(duì)所述第二系統(tǒng)發(fā)起的回調(diào)請(qǐng)求報(bào)文加入延遲隊(duì)列,并確定所述回調(diào)請(qǐng)求報(bào)文的延遲時(shí)間;
4、當(dāng)?shù)竭_(dá)所述延遲時(shí)間時(shí),將所述回調(diào)請(qǐng)求報(bào)文加入阻塞隊(duì)列,并基于所述阻塞隊(duì)列將所述回調(diào)請(qǐng)求報(bào)文轉(zhuǎn)發(fā)至所述第二系統(tǒng),以使所述第二系統(tǒng)基于所述回調(diào)請(qǐng)求報(bào)文進(jìn)行對(duì)應(yīng)的邏輯處理。
5、通過上述申請(qǐng)實(shí)施例,第一系統(tǒng)(如b系統(tǒng))在執(zhí)行完第二系統(tǒng)(如a系統(tǒng))發(fā)送的調(diào)用請(qǐng)求所對(duì)應(yīng)的任務(wù)后,將對(duì)第二系統(tǒng)發(fā)起的回調(diào)請(qǐng)求報(bào)文加入延遲隊(duì)列,再在到達(dá)回調(diào)請(qǐng)求報(bào)文的延遲時(shí)間后,才將回調(diào)請(qǐng)求報(bào)文加入阻塞隊(duì)列,然后基于阻塞隊(duì)列,將回調(diào)請(qǐng)求報(bào)文發(fā)送至第二系統(tǒng),使得第二系統(tǒng)可以基于回調(diào)請(qǐng)求報(bào)文執(zhí)行相應(yīng)的邏輯處理,從而完成對(duì)第一系統(tǒng)回調(diào)的響應(yīng),進(jìn)而實(shí)現(xiàn)了第一系統(tǒng)與第二系統(tǒng)間的正常調(diào)用及后續(xù)處理邏輯。通過延遲隊(duì)列與延遲時(shí)間以及阻塞隊(duì)列的設(shè)置,使得第一系統(tǒng)發(fā)起的回調(diào)請(qǐng)求報(bào)文不會(huì)立即發(fā)送至第二系統(tǒng),而是在滿足一定條件(即延遲時(shí)間與阻塞隊(duì)列)后才發(fā)送至第二系統(tǒng),從而使得第二系統(tǒng)可以及時(shí)響應(yīng)第一系統(tǒng)的回調(diào)請(qǐng)求,進(jìn)而解決了在第二系統(tǒng)調(diào)用第一系統(tǒng)執(zhí)行相應(yīng)任務(wù)后,因第一系統(tǒng)處理速度遠(yuǎn)超第二系統(tǒng)在發(fā)送調(diào)用請(qǐng)求后的后續(xù)復(fù)雜邏輯的處理速度,導(dǎo)致第二系統(tǒng)未能及時(shí)響應(yīng),造成第一系統(tǒng)回調(diào)失敗,從而影響業(yè)務(wù)流程的順暢執(zhí)行,以及引發(fā)數(shù)據(jù)不一致、服務(wù)超時(shí)等風(fēng)險(xiǎn)的問題。
6、在一種可能的實(shí)施方式中,在所述將對(duì)所述第二系統(tǒng)發(fā)起的回調(diào)請(qǐng)求報(bào)文加入延遲隊(duì)列之前,還包括:
7、接收所述第二系統(tǒng)發(fā)送的所述調(diào)用請(qǐng)求;
8、確定所述調(diào)用請(qǐng)求所對(duì)應(yīng)的任務(wù),并執(zhí)行所述調(diào)用請(qǐng)求所對(duì)應(yīng)的任務(wù)。
9、通過上述申請(qǐng)實(shí)施例,根據(jù)接收到的第二系統(tǒng)所發(fā)送的調(diào)用請(qǐng)求,確定待執(zhí)行任務(wù)(即調(diào)用請(qǐng)求所對(duì)應(yīng)的任務(wù)),從而執(zhí)行該待調(diào)用請(qǐng)求所對(duì)應(yīng)的任務(wù),以便于針對(duì)第二系統(tǒng)所發(fā)送的調(diào)用請(qǐng)求執(zhí)行相應(yīng)的邏輯處理,進(jìn)而滿足了第二系統(tǒng)的需求。
10、在一種可能的實(shí)施方式中,在所述將對(duì)所述第二系統(tǒng)發(fā)起的回調(diào)請(qǐng)求報(bào)文加入延遲隊(duì)列之前,還包括:
11、基于遠(yuǎn)程字典服務(wù)器redis,獲取具備第一名稱的所述延遲隊(duì)列;以及
12、在所述將所述回調(diào)請(qǐng)求報(bào)文加入阻塞隊(duì)列之前,還包括:
13、基于所述redis,獲取具備第二名稱的所述阻塞隊(duì)列。
14、通過上述申請(qǐng)實(shí)施例,基于redis,獲取具備第一名稱的延遲隊(duì)列以及具備第二名稱的阻塞隊(duì)列,以便于后續(xù)根據(jù)第一名稱與第二名稱,確定回調(diào)請(qǐng)求報(bào)文待加入的具體延遲隊(duì)列與具體阻塞隊(duì)列,從而避免將回調(diào)請(qǐng)求報(bào)文誤存至非對(duì)應(yīng)的功能或項(xiàng)目的延遲隊(duì)列與阻塞隊(duì)列,進(jìn)而保證了數(shù)據(jù)處理方法的實(shí)施過程的準(zhǔn)確性。
15、在一種可能的實(shí)施方式中,所述確定所述回調(diào)請(qǐng)求報(bào)文的延遲時(shí)間,包括:
16、確定所述第二系統(tǒng)在完成發(fā)送所述調(diào)用請(qǐng)求后的后續(xù)處理邏輯的處理時(shí)間;
17、根據(jù)所述處理時(shí)間,確定所述回調(diào)請(qǐng)求報(bào)文的所述延遲時(shí)間。
18、通過上述申請(qǐng)實(shí)施例,基于第二系統(tǒng)在完成發(fā)送調(diào)用請(qǐng)求后的后續(xù)處理邏輯的處理時(shí)間,來確定回調(diào)請(qǐng)求報(bào)文的延遲時(shí)間,進(jìn)一步地保證了后續(xù)將回調(diào)請(qǐng)求報(bào)文發(fā)送至第二系統(tǒng)時(shí),第二系統(tǒng)能夠及時(shí)響應(yīng)第一系統(tǒng)的回調(diào)請(qǐng)求。
19、在一種可能的實(shí)施方式中,所述基于所述阻塞隊(duì)列將所述回調(diào)請(qǐng)求報(bào)文轉(zhuǎn)發(fā)至所述第二系統(tǒng),包括:
20、啟動(dòng)所述阻塞隊(duì)列對(duì)應(yīng)的監(jiān)聽線程;
21、通過所述監(jiān)聽線程實(shí)時(shí)監(jiān)聽所述阻塞隊(duì)列中是否存在消息;其中,所述消息包括所述回調(diào)請(qǐng)求報(bào)文;
22、若是,通過所述監(jiān)聽線程獲取所述阻塞隊(duì)列中的所述回調(diào)請(qǐng)求報(bào)文,并通過所述監(jiān)聽線程將所述回調(diào)請(qǐng)求報(bào)文轉(zhuǎn)發(fā)至所述第二系統(tǒng)。
23、通過上述申請(qǐng)實(shí)施例,通過啟動(dòng)的阻塞隊(duì)列所對(duì)應(yīng)的監(jiān)聽線程來實(shí)時(shí)監(jiān)聽該阻塞隊(duì)列中是否存在消息,從而可以在監(jiān)聽到阻塞隊(duì)列中出現(xiàn)消息后,立馬取出該消息進(jìn)行消費(fèi)。因此,通過啟動(dòng)的監(jiān)聽線程對(duì)對(duì)應(yīng)的阻塞隊(duì)列的實(shí)時(shí)監(jiān)聽,可以及時(shí)將阻塞隊(duì)列中的回調(diào)請(qǐng)求報(bào)文轉(zhuǎn)發(fā)至第二系統(tǒng),以便于第二系統(tǒng)基于回調(diào)請(qǐng)求報(bào)文執(zhí)行對(duì)應(yīng)的邏輯處理,進(jìn)而及時(shí)響應(yīng)第一系統(tǒng)的回調(diào)請(qǐng)求。
24、第二方面,本技術(shù)還提供了一種數(shù)據(jù)處理裝置,應(yīng)用于第一系統(tǒng),所述裝置包括:
25、加入模塊,用于響應(yīng)于執(zhí)行完第二系統(tǒng)發(fā)送的調(diào)用請(qǐng)求所對(duì)應(yīng)的任務(wù),將對(duì)所述第二系統(tǒng)發(fā)起的回調(diào)請(qǐng)求報(bào)文加入延遲隊(duì)列,并確定所述回調(diào)請(qǐng)求報(bào)文的延遲時(shí)間;
26、處理模塊,用于當(dāng)?shù)竭_(dá)所述延遲時(shí)間時(shí),將所述回調(diào)請(qǐng)求報(bào)文加入阻塞隊(duì)列,并基于所述阻塞隊(duì)列將所述回調(diào)請(qǐng)求報(bào)文轉(zhuǎn)發(fā)至所述第二系統(tǒng),以使所述第二系統(tǒng)基于所述回調(diào)請(qǐng)求報(bào)文進(jìn)行對(duì)應(yīng)的邏輯處理。
27、在一種可能的實(shí)施方式中,所述加入模塊,具體用于接收所述第二系統(tǒng)發(fā)送的所述調(diào)用請(qǐng)求;確定所述調(diào)用請(qǐng)求所對(duì)應(yīng)的任務(wù),并執(zhí)行所述調(diào)用請(qǐng)求所對(duì)應(yīng)的任務(wù)。
28、在一種可能的實(shí)施方式中,所述加入模塊,還用于基于遠(yuǎn)程字典服務(wù)器redis,獲取具備第一名稱的所述延遲隊(duì)列;以及
29、所述處理模塊,具體用于基于所述redis,獲取具備第二名稱的所述阻塞隊(duì)列。
30、在一種可能的實(shí)施方式中,所述加入模塊,還用于確定所述第二系統(tǒng)在完成發(fā)送所述調(diào)用請(qǐng)求后的后續(xù)處理邏輯的處理時(shí)間;根據(jù)所述處理時(shí)間,確定所述回調(diào)請(qǐng)求報(bào)文的所述延遲時(shí)間。
31、在一種可能的實(shí)施方式中,所述處理模塊,還用于啟動(dòng)所述阻塞隊(duì)列對(duì)應(yīng)的監(jiān)聽線程;通過所述監(jiān)聽線程實(shí)時(shí)監(jiān)聽所述阻塞隊(duì)列中是否存在消息;其中,所述消息包括所述回調(diào)請(qǐng)求報(bào)文;若是,通過所述監(jiān)聽線程獲取所述阻塞隊(duì)列中的所述回調(diào)請(qǐng)求報(bào)文,并通過所述監(jiān)聽線程將所述回調(diào)請(qǐng)求報(bào)文轉(zhuǎn)發(fā)至所述第二系統(tǒng)。
32、第三方面,本技術(shù)提供了一種電子設(shè)備,包括:
33、存儲(chǔ)器,用于存放計(jì)算機(jī)程序;
34、處理器,用于執(zhí)行所述存儲(chǔ)器上所存放的計(jì)算機(jī)程序時(shí),實(shí)現(xiàn)上述的一種數(shù)據(jù)處理方法步驟。
35、第四方面,本技術(shù)提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)內(nèi)存儲(chǔ)有計(jì)算機(jī)程序,計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述的一種數(shù)據(jù)處理方法步驟。
36、上述第二方面至第四方面中的各個(gè)方面以及各個(gè)方面可能達(dá)到的技術(shù)效果請(qǐng)參照上述針對(duì)第一方面或第一方面中的各種可能方案可以達(dá)到的技術(shù)效果說明,這里不再重復(fù)贅述。