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