中文字幕无码日韩视频无码三区

一種實現數據查詢或導出的方法及系統的制作方法

文檔(dang)序號(hao):10724904閱讀:1075來源:國知(zhi)局
一種實現數據查詢或導出的方法及系統的制作方法
【專利摘要】本發明公開了一種實現數據查詢或導出的方法,用于避免查詢或導出請求長時間無響應以及避免WAS服務器線程阻塞,該方法包括:接收用戶瀏覽器發送的請求參數,根據請求參數生成查詢請求或導出請求,將查詢請求或導出請求的標識返回給用戶瀏覽器,以使用戶瀏覽器在顯示的等待頁面中插入標識;啟動線程或進程向數據庫接口發送查詢請求或導出請求,接收數據庫接口返回的查詢結果數據或導出數據;接收用戶瀏覽器發送的包括標識的結果查詢請求,查詢是否獲得標識對應的查詢結果數據或導出數據,如果是,則將標識對應的查詢結果數據或導出數據返回給用戶瀏覽器進行展示。本發明還公開了實現數據查詢或導出的系統。
【專利說明】
一種實現數據查詢或導出的方法及系統
技術領域
[0001]本發明涉及數據庫技術領域,具體涉及一種實現數據查詢或導出的方法及系統。
【背景技術】
[0002]在一些分析類系統中,往往需要對大數據表進行查詢和導出,涉及數據量較大。在現有技術中,通常采用同步查詢或導出的方式,用戶通過在瀏覽器點擊查詢或導出按鈕,前端WAS(WebSphere Applicat1n Server ,WebSphere應用服務器)應用戶請求生成查詢或導出請求并通過訪問數據庫處理該查詢或導出請求。
[0003]由于資源的限制以及關系型數據庫本身的技術限制,不可避免地會遇到數據庫查詢語句執行較慢或者導出數據量過大,導致無法快速返回查詢和導出結果的情況;另一方面,WAS會監視應用戶請求啟動的線程活動,當其檢測到線程處于活動狀態的時間超過了線程監視器閾值所定義的時間時,WAS將在WAS日志中記錄一條警告,指出被掛起線程的名稱及其已處于活動狀態的時間,當同時掛起的WAS線程數大于閾值,則報警到監控平臺和/或自動重啟該WAS。因此,在現有技術中,存在處理查詢或導出耗時過長,用戶瀏覽器處于長時間沒有響應狀態以及容易造成WAS線程阻塞,導致線程掛起及線程池溢出的技術問題。

【發明內容】

[0004]有鑒于此,本發明提供一種實現數據查詢或導出的方法及系統,以解決現有技術中存在處理查詢或導出耗時過長,用戶瀏覽器處于長時間沒有響應狀態以及容易造成WAS線程阻塞,導致線程掛起及線程池溢出的技術問題。
[0005]為解決上述問題,本發明提供的技術方案如下:
[0006]—種實現數據查詢或導出的方法,所述方法包括:
[0007]接收用戶瀏覽器發送的請求參數,根據所述請求參數生成查詢請求或導出請求,將所述查詢請求或所述導出請求的標識返回給所述用戶瀏覽器,以使所述用戶瀏覽器在顯示的等待頁面中插入所述標識;
[0008]啟動線程或進程向數據庫接口發送所述查詢請求或所述導出請求,接收所述數據庫接口返回的查詢結果數據或導出數據;
[0009]接收所述用戶瀏覽器發送的包括所述標識的結果查詢請求,查詢是否獲得所述標識對應的查詢結果數據或導出數據,如果是,則將所述標識對應的查詢結果數據或導出數據返回給所述用戶瀏覽器進行展示。
[0010]相應的,所述方法應用于實現數據查詢或導出的系統,所述系統運行于WebSphere應用服務器WAS,所述系統包括觸發模塊、請求管理器以及線程池;
[0011]所述接收用戶瀏覽器發送的請求參數,根據所述請求參數生成查詢請求或導出請求,將所述查詢請求或所述導出請求的標識返回給所述用戶瀏覽器,包括:
[0012]所述觸發模塊接收用戶瀏覽器發送的請求參數,根據所述請求參數生成查詢請求或導出請求并發送給所述請求管理器;
[0013]所述請求管理器生成所述查詢請求或所述導出請求的標識并發送給所述觸發模塊;
[0014]所述觸發模塊將所述標識返回給所述用戶瀏覽器。
[0015]相應的,所述啟動線程或進程向數據庫接口發送所述查詢請求或所述導出請求,接收所述數據庫接口返回的查詢結果數據或導出數據,包括:
[0016]所述請求管理器向所述線程池發送所述查詢請求或所述導出請求;
[0017]所述線程池啟動線程執行向數據庫接口發送所述查詢請求或所述導出請求,在所述數據庫接口返回查詢結果數據或導出數據后接收所述查詢結果數據或所述導出數據,并通知所述請求管理器已獲得所述標識對應的查詢結果數據或導出數據。
[0018]相應的,所述接收所述用戶瀏覽器發送的包括所述標識的結果查詢請求,查詢是否獲得所述標識對應的查詢結果數據或導出數據,如果是,則將所述標識對應的查詢結果數據或導出數據返回給所述用戶瀏覽器進行展示,包括:
[0019]所述觸發模塊接收所述用戶瀏覽器發送的包括所述標識的結果查詢請求并發送給所述請求管理器;
[0020]所述請求管理器查詢所述查詢是否獲得所述標識對應的查詢結果數據或導出數據,如果是,則從所述線程池獲取所述標識對應的查詢結果數據或導出數據并發送給所述觸發t吳塊;
[0021]所述觸發模塊將所述標識對應的查詢結果數據或導出數據返回給所述用戶瀏覽器進行展示。
[0022]相應的,所述方法應用于實現數據查詢或導出的系統,所述系統包括觸發模塊、請求數據庫以及后臺進程模塊,所述觸發模塊運行于WebSphere應用服務器WAS;
[0023]所述接收用戶瀏覽器發送的請求參數,根據所述請求參數生成查詢請求或導出請求,將所述查詢請求或所述導出請求的標識返回給所述用戶瀏覽器,包括:
[0024]所述觸發模塊接收用戶瀏覽器發送的請求參數,根據所述請求參數生成查詢請求或導出請求并發送給所述請求數據庫;
[0025]所述請求數據庫生成所述查詢請求或所述導出請求的標識并發送給所述觸發模塊;
[0026]所述觸發模塊將所述標識返回給所述用戶瀏覽器。
[0027]相應的,所述啟動線程或進程向數據庫接口發送所述查詢請求或所述導出請求,接收所述數據庫接口返回的查詢結果數據或導出數據,包括:
[0028]所述后臺進程模塊中的生產者進程從所述請求數據庫中獲取未處理的所述查詢請求或所述導出請求并放入請求隊列,所述后臺進程模塊中的消費者進程從所述請求隊列中獲取一條所述查詢請求或所述導出請求發送給數據庫接口,在所述數據庫接口返回查詢結果數據或導出數據后將所述查詢結果數據或所述導出數據發送給所述請求數據庫。
[0029]相應的,所述接收所述用戶瀏覽器發送的包括所述標識的結果查詢請求,查詢是否獲得所述標識對應的查詢結果數據或導出數據,如果是,則將所述標識對應的查詢結果數據或導出數據返回給所述用戶瀏覽器進行展示,包括:
[0030]所述觸發模塊接收所述用戶瀏覽器發送的包括所述標識的結果查詢請求并發送給所述請求數據庫;
[0031]所述請求數據庫查詢所述查詢是否獲得所述標識對應的查詢結果數據或導出數據,如果是,則將所述標識對應的查詢結果數據或導出數據并發送給所述觸發模塊;
[0032]所述觸發模塊將所述標識對應的查詢結果數據或導出數據返回給所述用戶瀏覽器進行展示。
[0033]相應的,所述方法應用于所述方法應用于實現數據查詢或導出的系統,所述系統包括觸發模塊、消息中間件以及后臺進程模塊,所述觸發模塊運行于WebSphere應用服務器WAS;
[0034]所述接收用戶瀏覽器發送的請求參數,根據所述請求參數生成查詢請求或導出請求,將所述查詢請求或所述導出請求的標識返回給所述用戶瀏覽器,包括:
[0035]所述觸發模塊接收用戶瀏覽器發送的請求參數,根據所述請求參數生成查詢請求或導出請求以及所述查詢請求或所述導出請求的標識;
[0036]所述觸發模塊將所述查詢請求或所述導出請求發送給所述消息中間件中的請求消息隊列,并將所述標識返回給所述用戶瀏覽器。
[0037]相應的,所述啟動線程或進程向數據庫接口發送所述查詢請求或所述導出請求,接收所述數據庫接口返回的查詢結果數據或導出數據,包括:
[0038]所述后臺進程模塊監聽所述請求消息隊列,當所述請求消息隊列接收到所述查詢請求或所述導出請求后,所述后臺進程中的消息驅動組件從所述請求消息隊列中獲取所述查詢請求或所述導出請求發送給數據庫接口,在所述數據庫接口返回查詢結果數據或導出數據后將所述查詢結果數據或所述導出數據發送給所述消息中間件中的返回消息隊列。
[0039]相應的,所述接收所述用戶瀏覽器發送的包括所述標識的結果查詢請求,查詢是否獲得所述標識對應的查詢結果數據或導出數據,如果是,則將所述標識對應的查詢結果數據或導出數據返回給所述用戶瀏覽器進行展示,包括:
[0040]所述觸發模塊接收所述用戶瀏覽器發送的包括所述標識的結果查詢請求并查詢所述返回消息隊列是否獲得所述標識對應的查詢結果數據或導出數據,如果是,則從所述返回消息隊列獲取所述標識對應的查詢結果數據或導出數據;
[0041]所述觸發模塊將所述標識對應的查詢結果數據或導出數據返回給所述用戶瀏覽器進行展示。
[0042]一種實現數據查詢或導出的系統,所述系統運行于WebSphere應用服務器WAS,所述系統包括:觸發模塊、請求管理器以及線程池;
[0043]所述觸發模塊,用于接收用戶瀏覽器發送的請求參數,根據所述請求參數生成查詢請求或導出請求并發送給所述請求管理器,將所述請求管理器生成的所述查詢請求或所述導出請求的標識返回給所述用戶瀏覽器;
[0044]所述請求管理器,用于生成所述查詢請求或所述導出請求的標識并發送給所述觸發模塊;向所述線程池發送所述查詢請求或所述導出請求;
[0045]所述線程池,用于啟動線程執行向數據庫接口發送所述查詢請求或所述導出請求,在所述數據庫接口返回查詢結果數據或導出數據后接收所述查詢結果數據或所述導出數據,并通知所述請求管理器已獲得所述標識對應的查詢結果數據或導出數據;
[0046]所述觸發模塊,還用于接收所述用戶瀏覽器發送的包括所述標識的結果查詢請求;
[0047]所述請求管理器,還用于查詢是否獲得所述標識對應的查詢結果數據或導出數據,如果是,則將所述標識對應的查詢結果數據或導出數據并發送給所述觸發模塊;
[0048]所述觸發模塊,還用于將所述標識對應的查詢結果數據或導出數據返回給所述用戶瀏覽器進行展示。
[0049]—種實現數據查詢或導出的系統,所述系統包括:觸發模塊、請求數據庫以及后臺進程模塊,所述觸發模塊運行于WebSphere應用服務器WAS,所述后臺進程模塊包括生產者進程以及消費者進程;
[0050]所述觸發模塊,用于接收用戶瀏覽器發送的請求參數,根據所述請求參數生成查詢請求或導出請求并發送給所述請求數據庫,將所述請求數據庫生成的所述查詢請求或所述導出請求的標識返回給所述用戶瀏覽器;
[0051]所述請求數據庫,用于生成所述查詢請求或所述導出請求的標識并發送給所述觸發豐吳塊;
[0052]所述生產者進程,用于從所述請求數據庫中獲取未處理的所述查詢請求或所述導出請求并放入請求隊列;
[0053]所述消費者進程,用于從所述請求隊列中獲取一條所述查詢請求或所述導出請求發送給數據庫接口,在所述數據庫接口返回查詢結果數據或導出數據后將所述查詢結果數據或所述導出數據發送給所述請求數據庫;
[0054]所述觸發模塊,還用于接收所述用戶瀏覽器發送的包括所述標識的結果查詢請求并發送給所述請求數據庫;
[0055]所述請求數據庫,還用于查詢所述查詢是否獲得所述標識對應的查詢結果數據或導出數據,如果是,則將所述標識對應的查詢結果數據或導出數據并發送給所述觸發模塊;
[0056]所述觸發模塊,還用于將所述標識對應的查詢結果數據或導出數據返回給所述用戶瀏覽器進行展示。
[0057]—種實現數據查詢或導出的系統,所述系統包括:觸發模塊、消息中間件以及后臺進程模塊,所述觸發模塊運行于WebSphere應用服務器WAS,所述消息中間件包括請求消息隊列以及返回消息隊列;
[0058]所述觸發模塊,用于接收用戶瀏覽器發送的請求參數,根據所述請求參數生成查詢請求或導出請求以及所述查詢請求或所述導出請求的標識;將所述查詢請求或所述導出請求發送給所述請求消息隊列,并將所述標識返回給所述用戶瀏覽器;
[0059]所述后臺進程模塊,用于監聽所述請求消息隊列,當所述請求消息隊列接收到所述查詢請求或所述導出請求后,消息驅動組件從所述請求消息隊列中獲取所述查詢請求或所述導出請求發送給數據庫接口,在所述數據庫接口返回查詢結果數據或導出數據后將所述查詢結果數據或所述導出數據發送給所述返回消息隊列;
[0060]所述觸發模塊,還用于接收所述用戶瀏覽器發送的包括所述標識的結果查詢請求并查詢所述返回消息隊列是否獲得所述標識對應的查詢結果數據或導出數據,如果是,則從所述返回消息隊列獲取所述標識對應的查詢結果數據或導出數據;將所述標識對應的查詢結果數據或導出數據返回給所述用戶瀏覽器進行展示。
[0061]由此可見,本發明實施例具有如下有益效果:
[0062]本發明實施例通過異步方式實現數據查詢或導出,在生成查詢請求或導出請求后用戶瀏覽器直接返回等待頁面,而不是一直等待后臺數據庫返回查詢或導出結果,此時用戶還可以進行其他操作;啟動線程或進程處理查詢或導出請求,此時WAS不監控自己啟動的線程或其他進程,避免出現線程掛起的警告;最后由用戶主動觸發或采用輪詢的方式查詢請求是否處理完成,根據狀態決定返回等待頁面繼續等待或者展示結果數據,避免了由于數據庫查詢語句執行較慢或者導出數據量過大導致查詢或導出請求長時間沒有響應。
【附圖說明】
[0063]圖1為現有技術中同步查詢或導出的過程示意圖;
[0064]圖2為本發明實施例提供的數據查詢或導出的方法實施例一的流程圖;
[0065]圖3為本發明實施例異步查詢或導出的過程示意圖;
[0066]圖4為本發明實施例提供的數據查詢或導出的方法實施例二的示意圖;
[0067]圖5為本發明實施例提供的數據查詢或導出的方法實施例三的示意圖;
[0068]圖6為本發明實施例提供的數據查詢或導出的方法實施例四的示意圖;
[0069]圖7為本發明實施例提供的數據查詢或導出的系統實施例一的示意圖;
[0070]圖8為本發明實施例提供的數據查詢或導出的系統實施例二的示意圖;
[0071]圖9為本發明實施例提供的數據查詢或導出的系統實施例三的示意圖。
【具體實施方式】
[0072]為使本發明的上述目的、特征和優點能夠更加明顯易懂,下面結合附圖和【具體實施方式】對本發明實施例作進一步詳細的說明。
[0073]在現有技術中通常采用同步查詢或導出的方式,參見圖1所示,同步查詢或導出可以分為三個階段:
[0074]在第一階段用戶點擊查詢或導出按鈕,用戶瀏覽器頁面生成http(HyperTeXtTransfer Protocol,超文本傳輸協議)請求發送給系統;在第二階段系統處理http請求,獲取其中的請求參數生成SQL查詢請求或導出請求,訪問數據庫查詢或導出,數據庫返回查詢結果數據或導出數據,如果是查詢請求,系統封裝查詢結果數據返回給用戶瀏覽器頁面展示,如果是導出請求,系統根據導出結果生成導出文件,返回導出數據;第三階段用戶瀏覽器頁面獲取查詢結果展示或下載導出數據。
[0075]由于資源的限制以及關系型數據庫本身的技術限制,對查詢語句的優化能力往往是有限的,無法將查詢語句優化到秒級。這樣用戶瀏覽器在第二階段一直處于無響應的等待狀態,無法進行其他處理,如果第二階段處理耗時過長,則用戶瀏覽器處于長時間無響應狀態;另一方面,系統例如WAS服務器會監視第二階段響應用戶請求而啟動處理查詢或導出的線程,當檢測到線程處于活動狀態的時間超過了線程監視器閾值所定義的時間(默認為10分鐘)時,應用程序服務器將在WAS日志中記錄一條警告,指出被掛起線程的名稱及其已處于活動狀態的時間,在實際應用中,例如可以設置WAS日志監控規則為:一個服務器上若同時掛起的WAS線程數大于25,則報警到監控平臺;若同時掛起的WAS線程數大于70,則報警到監控平臺,并自動重啟該服務器。
[0076]針對以上問題,本發明實施例提出通過異步查詢或異步導出的方式,將耗費時間較長的長查詢交易轉變成對用戶可見的短交易,避免用戶長時間等待和大量WAS線程阻塞導致服務器重啟的技術問題。
[0077]參見圖2所示,是本發明實施例中提供的實現數據查詢或導出的方法實施例一,可以包括以下步驟:
[0078]步驟201:接收用戶瀏覽器發送的請求參數,根據請求參數生成查詢請求或導出請求,將查詢請求或導出請求的標識返回給用戶瀏覽器,以使用戶瀏覽器在顯示的等待頁面中插入標識。
[0079]本發明實施例可以應用于實現數據查詢或導出的系統,可以包括觸發模塊、請求管理器以及線程池,該實現數據查詢或導出的系統該可以運行于WebSphere應用服務器WAS,或者實現數據查詢或導出的系統可以包括觸發模塊、請求數據庫以及后臺進程模塊,或者實現數據查詢或導出的系統也可以包括觸發模塊、消息中間件以及后臺進程模塊,其中觸發模塊可以運行于WAS。用戶在用戶瀏覽器通過點擊查詢或導出按鈕向系統發送查詢或導出的請求參數,例如需要查詢或導出某一時間段內的某種數據,系統在接收到請求參數后生成包括SQL(Structured Query Language,結構化查詢語言)查詢語句以及其他請求信息的查詢請求或導出請求,每一個查詢請求或導出請求都對應唯一的標識,該標識會記錄在等待頁面用于刷新頁面時查詢該標識對應的查詢請求或導出請求是否已經處理完成。
[0080]步驟202:啟動線程或進程向數據庫接口發送查詢請求或導出請求,接收數據庫接口返回的查詢結果數據或導出數據。
[0081]可以采用WAS自己啟動線程處理查詢請求或導出請求,或者啟動另外的后臺進程處理查詢請求或導出請求,WAS不監測自己啟動的線程,WAS也不會監測其他后臺進程,這樣即使處理查詢請求或導出請求的耗時較長,也不會出現WAS線程hung住導致報警以及服務器重啟的問題。
[0082]步驟203:接收用戶瀏覽器發送的包括標識的結果查詢請求,查詢是否獲得標識對應的查詢結果數據或導出數據,如果是,則將標識對應的查詢結果數據或導出數據返回給用戶瀏覽器進行展示。
[0083]參見圖3所示,本發明實施例采用的異步查詢或導出同樣可以分為三個階段:
[0084]在第一階段用戶點擊查詢或導出按鈕,系統獲取請求參數,生成查詢請求或導出請求,用戶瀏覽器返回等待頁面,等待頁面中插入查詢請求或導出請求的標識;在第二階段系統啟動線程或者后臺進程的方式,處理查詢請求或導出請求,訪問數據庫返回查詢結果數據或導出數據;在第三階段用戶輪詢或者主動刷新等待頁面,系統查詢請求處理狀態,如果請求尚未處理完畢,則返回等待頁面,如果請求已處理完畢,頁面展示查詢結果數據或者導出數據。
[0085]與現有技術的同步查詢或導出相比,本發明實施例中異步查詢或導出的三個階段中,第一階段系統生成查詢或導出請求后用戶瀏覽器直接返回等待頁面,而不是等待后臺數據庫返回查詢或導出結果,此時用戶還可以進行其他操作;第二階段由系統啟動線程或者后臺進程的方式,處理查詢和導出請求,此時WAS并不監控這些啟動的線程或進程,避免出現線程掛起的警告;第三階段由用戶主動觸發或前端javascript觸發查詢,系統檢查查詢或導出請求的處理狀態,根據狀態決定是返回等待頁面繼續等待或者返回結果頁面進行結果展示或下載。異步查詢與導出通過以上步驟,避免了由于數據庫查詢語句執行較慢或者導出數據量過大,導致查詢或導出請求長時間沒有響應。
[0086]參見圖4所示,在本發明的一些可能的實現方式中,本發明實施例中提供的實現數據查詢或導出的方法可以應用于實現數據查詢或導出的系統,該系統可以運行于WebSphere應用服務器WAS,該系統可以包括觸發模塊Act 1n、請求管理器Request Manager以及線程池ThreadPoolExecutor,在本實施例中,實現數據查詢或導出的方法可以包括:
[0087]步驟401:用戶通過用戶瀏覽器點擊查詢或導出按鈕發送請求參數,觸發模塊接收用戶瀏覽器發送的請求參數。
[0088]步驟402:觸發模塊根據請求參數生成查詢請求或導出請求并發送給請求管理器。
[0089]步驟403:請求管理器生成查詢請求或導出請求的標識并發送給觸發模塊。
[0090]步驟404:觸發模塊將查詢請求或導出請求的標識返回給用戶瀏覽器,用戶瀏覽器返回等待頁面,并可以設置刷新時間。
[0091]步驟405:請求管理器向線程池發送查詢請求或導出請求。
[0092]步驟406:調用線程池啟動線程執行向數據庫接口DataBase Access Object發送查詢請求或導出請求,由數據庫執行查詢請求或導出請求;
[0093]步驟407:在數據庫接口返回查詢結果數據或導出數據后接收查詢結果數據或導出數據,并通知請求管理器已獲得標識對應的查詢結果數據或導出數據。請求管理器可以記錄標識對應的查詢請求或導出請求的狀態,即可以查詢得到是否已經獲得標識對應的查詢請求或導出請求的查詢結果數據或導出數據。
[0094]步驟408:觸發模塊接收用戶瀏覽器發送的包括標識的結果查詢請求。
[0095]步驟409:觸發模塊將包括標識的結果查詢請求發送給請求管理器,請求管理器查詢查詢是否獲得標識對應的查詢結果數據或導出數據,
[0096]步驟410:如果獲得標識對應的查詢結果數據或導出數據,則請求管理器從線程池獲取標識對應的查詢結果數據或導出數據。
[0097]步驟411:請求管理器將標識對應的查詢結果數據或導出數據發送給觸發模塊。
[0098]步驟412:觸發模塊將標識對應的查詢結果數據或導出數據返回給用戶瀏覽器進行展示。
[0099]本實施例是基于java.util.concurrent包中CallabIe及Future接口實現異步方法調用。用戶點擊查詢后,Act1n生成查詢或導出請求,將請求放入請求管理器(RequestManager),之后用戶瀏覽器頁面將跳轉至等待頁面。請求加入請求管理器后,請求管理器會生成唯一的標識Correlat1n ID,用于唯一標識該請求。該ID會記錄在等待頁面用于刷新。請求管理器調用ThreadPoolExecutor啟動線程執行數據庫操作,獲得返回結果。用戶刷新等待頁面調用Act1n檢查請求管理器中Correlat1n ID對應的請求是否已經處理完成,如果尚未處理完畢,則跳轉等待頁面,繼續等待,如果處理完畢,有返回結果,跳轉查詢結果頁面展示查詢結果數據或導出數據。
[0100]本實施例實現數據查詢或導出的方法,實現簡單,無需調整系統架構;啟動的線程不在WAS線程監視器的監控范圍內,故即使線程執行時間過程,WAS也不會產生預警信息;而由于線程占用WAS進程的資源,如果線程使用資源時沒有及時釋放,容易導致整個應用無法使用,影響代價較大;部分支持集群環境,在集群環境下部署實現需依賴于WAS的會話粘性的特性,由于用戶點擊查詢或導出后生成的查詢或導出請求信息是保存在集群中某一臺服務器的內存中,處理完成后用戶需在同一臺服務器才能獲得查詢結果,如果該臺服務器在處理請求的過程中宕機,可能導致請求丟失。
[0101 ]由此,在本發明的一些可能的實現方式中,參見圖5所示,本發明實施例中提供的實現數據查詢或導出的方法可以應用于實現數據查詢或導出的系統,該系統可以包括觸發模塊Act1n、請求數據庫REQ_INF0以及后臺進程模塊,觸發模塊Act 1n可以運行于WebSphere應用服務器WAS,后臺進程模塊可以采用生產者Producer/消費者Consumer模式,在本實施例中,實現數據查詢或導出的方法可以包括:
[0102]步驟501:用戶通過用戶瀏覽器點擊查詢或導出按鈕發送請求參數,觸發模塊接收用戶瀏覽器發送的請求參數。
[0103]步驟502:觸發模塊根據請求參數生成查詢請求或導出請求并發送給請求數據庫。
[0104]步驟503:請求數據庫生成查詢請求或導出請求的標識并發送給觸發模塊。
[0105]步驟504:觸發模塊將查詢請求或導出請求的標識返回給用戶瀏覽器,用戶瀏覽器返回等待頁面,并可以設置刷新時間。
[0106]步驟505:后臺進程模塊中的生產者進程從請求數據庫中獲取所有未處理的查詢請求或導出請求。
[0107]步驟506:生產者進程將查詢請求或導出請求放入請求隊列。
[0108]步驟507:后臺進程模塊中的消費者進程從請求隊列中獲取一條查詢請求或導出請求。
[0109]步驟508:消費者進程向數據庫接口DataBase Access Object發送查詢請求或導出請求,由數據庫執行查詢請求或導出請求。
[0110]步驟509:消費者進程在數據庫接口返回查詢結果數據或導出數據后接收查詢結果數據或導出數據。
[0111]步驟510:將查詢結果數據或導出數據發送給請求數據庫。
[0112]步驟511:觸發模塊接收用戶瀏覽器發送的包括標識的結果查詢請求。
[0113]步驟512:觸發模塊將包括標識的結果查詢請求發送給請求數據庫,請求數據庫查詢查詢是否獲得標識對應的查詢結果數據或導出數據。
[0114]步驟513:如果獲得標識對應的查詢結果數據或導出數據,則將標識對應的查詢結果數據或導出數據并發送給觸發模塊。
[0115]步驟514:觸發模塊將標識對應的查詢結果數據或導出數據返回給用戶瀏覽器進行展示。
[0116]本實施例是采取啟動后臺進程的方式,前端WAS生成查詢或導出請求,保存在請求數據庫中,后臺進程模塊從請求數據庫中獲得查詢或導出請求,進行處理并將結果保存在請求數據庫中。具體的,用戶點擊查詢后,Act1n生成查詢或導出請求,將查詢或導出請求保存在請求數據庫中,之后用戶瀏覽器頁面將跳轉至等待頁面。通過請求數據庫序列sequence生成唯一的標識Correlat 1n ID,用于唯一標識該請求。該ID會記錄在等待頁面用于刷新,查詢或導出請求一開始處于初始INIT狀態。后臺進程模塊采用生產者/消費者的多線程設計模式,生產者線程從請求數據庫中獲取所有INIT狀態的請求放入請求隊列LinkedBlockingQueue中,此時請求處于等待WAIT狀態;消費者線程從隊列獲得一個WAIT狀態請求進行處理,處理完成后在請求數據庫中記錄查詢結果數據或導出數據。用戶刷新等待頁面調用Act 1n查詢請求數據庫中Corre Iat 1n ID對應的請求是否已經處理完成,如果尚未處理完畢,則跳轉等待頁面,繼續等待,如果處理完畢,有返回結果,跳轉查詢結果頁面展示查詢結果數據或導出數據。
[0117]本實施例支持集群環境,集群中多臺WAS服務器生成的查詢與導出請求均保存在請求數據庫中,后臺進程模塊通過請求數據庫獲取請求進行處理,并將處理結果保存在請求數據庫中,WAS服務器根據Correlat1n ID從數據庫中獲得查詢結果數據與導出文件的路徑,生成的導出文件建議保存在共享磁盤上,保證集群中多臺WAS服務器均能訪問。同時,故障恢復代價較小,由于后臺進程模塊與前端應用分離,后臺進程故障將不會影響前端應用的正常使用,影響范圍較小。且無需增加中間件,系統架構調整小。但是查詢結果的展現需手動觸發查詢請求數據庫,請求數據庫存儲查詢或導出請求及結果,需增加數據庫表清理機制。
[0118]由此,在本發明的一些可能的實現方式中,參見圖6所示,本發明實施例中提供的實現數據查詢或導出的方法還可以應用于實現數據查詢或導出的系統,該系統可以包括觸發模塊、消息中間件以及后臺進程模塊,觸發模塊可以運行于WebSphere應用服務器WAS,消息中間件中可以包括JMS Queue(Java Messaging Service Queue,Java消息服務隊列),JMS Queue可以包括請求消息隊列以及返回消息隊列。在本實施例中,實現數據查詢或導出的方法可以包括:
[0119]步驟601:用戶通過用戶瀏覽器點擊查詢或導出按鈕發送請求參數,觸發模塊接收用戶瀏覽器發送的請求參數,根據請求參數生成查詢請求或導出請求以及查詢請求或導出請求的標識。
[0120]步驟602:觸發模塊將查詢請求或導出請求發送給消息中間件中的請求消息隊列。
[0121]步驟603:將查詢請求或導出請求的標識返回給用戶瀏覽器。
[0122]步驟604:后臺進程模塊監聽請求消息隊列,當請求消息隊列接收到查詢請求或導出請求后,后臺進程中的消息驅動組件Message-Driven Bean從請求消息隊列中獲取查詢請求或導出請求。
[0123]步驟605:消息驅動組件將查詢請求或導出請求發送給數據庫接口 DataBaseAccess Object。
[0124]步驟606:在數據庫接口返回查詢結果數據或導出數據后將查詢結果數據或導出數據發送給消息中間件中的返回消息隊列。
[0125]步驟607:觸發模塊接收用戶瀏覽器發送的包括標識的結果查詢請求。
[0126]步驟608:觸發模塊查詢返回消息隊列是否獲得標識對應的查詢結果數據或導出數據。
[0127]步驟609:如果獲得標識對應的查詢結果數據或導出數據,則從返回消息隊列獲取標識對應的查詢結果數據或導出數據。
[0128]步驟610:觸發模塊將標識對應的查詢結果數據或導出數據返回給用戶瀏覽器進行展示。
[0129]本實施例同樣是采取啟動后臺進程的方案,本實施例采用消息中間件解決進程間通訊問題。具體的,用戶點擊查詢后,Act1n生成查詢或導出請求,將查詢或導出請求發送至請求消息隊列Request Queue,之后用戶瀏覽器的頁面將跳轉至等待頁面。在發送查詢或導出請求前,Act 1n會生成唯一的標識Corre Iat 1n ID,用于唯一標識該請求,該ID會記錄在等待頁面用于刷新。后臺進程會監聽請求消息隊列Request Queue,一旦接到請求消息,MDB(Message Driven Bean,消息驅動組件)會從請求消息隊列中獲取查詢或導出請求,根據查詢或導出請求進行處理,包括查詢數據庫、生成導出文件等等。查詢或導出請求處理完成后,MDB會生成返回消息,并將返回消息發送至返回消息隊列Response Queue。返回消息需設置與請求消息一致的Corr elat1n ID。等待頁面調用Act 1n檢查返回消息隊列Response Queue中是否有CorreIat1n ID對應的返回消息,如果沒有返回消息,貝Ij跳轉等待頁面,如果有返回消息,跳轉查詢結果頁面展示查詢結果數據或導出數據。
[0130]本實施例支持集群環境,多臺WAS服務器生成的查詢與導出請求和返回結果均保存在隊列;故障恢復代價較小,由于后臺進程與前端應用分離,后臺進程故障將不會影響前端應用的正常使用,影響范圍較小;頁面自動刷新,自動返回查詢結果并展示,用戶友好性較好;但是增加中間件,對系統架構有較大調整。
[0131]這樣,本發明實施例通過異步方式實現數據查詢或導出,在生成查詢請求或導出請求后用戶瀏覽器直接返回等待頁面,而不是一直等待后臺數據庫返回查詢或導出結果,此時用戶還可以進行其他操作;啟動線程或進程處理查詢或導出請求,此時WAS不監控自己啟動的線程或其他進程,避免出現線程掛起的警告;最后由用戶主動觸發或采用輪詢的方式查詢請求是否處理完成,根據狀態決定返回等待頁面繼續等待或者展示結果數據,避免了由于數據庫查詢語句執行較慢或者導出數據量過大導致查詢或導出請求長時間沒有響應。
[0132]參見圖7所示,本發明實施例中還提供一種實現數據查詢或導出的系統實施例,該系統可以運行于WebSphere應用服務器WAS,該系統可以包括:觸發模塊701、請求管理器702以及線程池703。
[0133]其中,觸發模塊,可以用于接收用戶瀏覽器發送的請求參數,根據請求參數生成查詢請求或導出請求并發送給請求管理器,將請求管理器生成的查詢請求或導出請求的標識返回給用戶瀏覽器。
[0134]請求管理器,可以用于生成查詢請求或導出請求的標識并發送給觸發模塊;向線程池發送查詢請求或導出請求。
[0135]線程池,可以用于啟動線程執行向數據庫接口發送查詢請求或導出請求,在數據庫接口返回查詢結果數據或導出數據后接收查詢結果數據或導出數據,并通知請求管理器已獲得標識對應的查詢結果數據或導出數據。
[0136]觸發模塊,還可以用于接收用戶瀏覽器發送的包括標識的結果查詢請求。
[0137]請求管理器,還可以用于查詢是否獲得標識對應的查詢結果數據或導出數據,如果是,則將標識對應的查詢結果數據或導出數據并發送給觸發模塊。
[0138]觸發模塊,還可以用于將標識對應的查詢結果數據或導出數據返回給用戶瀏覽器進行展示。
[0139]本實施例與上述圖4對應的實施例類似,相關說明可以參見上述實施例,在此不再贅述。
[0140]參見圖8所示,本發明實施例中還提供一種實現數據查詢或導出的系統實施例,該系統可以包括:觸發模塊801、請求數據庫802以及后臺進程模塊803,觸發模塊可以運行于WebSphere應用服務器WAS,后臺進程模塊可以包括生產者進程以及消費者進程。
[0141]其中,觸發模塊,可以用于接收用戶瀏覽器發送的請求參數,根據請求參數生成查詢請求或導出請求并發送給請求數據庫,將請求數據庫生成的查詢請求或導出請求的標識返回給用戶瀏覽器。
[0142]請求數據庫,可以用于生成查詢請求或導出請求的標識并發送給觸發模塊。
[0143]生產者進程,可以用于從請求數據庫中獲取未處理的查詢請求或導出請求并放入請求隊列。
[0144]消費者進程,可以用于從請求隊列中獲取一條查詢請求或導出請求發送給數據庫接口,在數據庫接口返回查詢結果數據或導出數據后將查詢結果數據或導出數據發送給請求數據庫。
[0145]觸發模塊,還可以用于接收用戶瀏覽器發送的包括標識的結果查詢請求并發送給請求數據庫。
[0146]請求數據庫,還可以用于查詢查詢是否獲得標識對應的查詢結果數據或導出數據,如果是,則將標識對應的查詢結果數據或導出數據并發送給觸發模塊。
[0147]觸發模塊,還可以用于將標識對應的查詢結果數據或導出數據返回給用戶瀏覽器進行展示。
[0148]本實施例與上述圖5對應的實施例類似,相關說明可以參見上述實施例,在此不再贅述。
[0149]參見圖9所示,本發明實施例中還提供一種實現數據查詢或導出的系統實施例,該系統可以包括:觸發模塊901、消息中間件902以及后臺進程模塊903,觸發模塊可以運行于WebSphere應用服務器WAS,消息中間件可以包括請求消息隊列以及返回消息隊列。
[0150]其中,觸發模塊,可以用于接收用戶瀏覽器發送的請求參數,根據請求參數生成查詢請求或導出請求以及查詢請求或導出請求的標識;將查詢請求或導出請求發送給請求消息隊列,并將標識返回給用戶瀏覽器;
[0151]后臺進程模塊,可以用于監聽請求消息隊列,當請求消息隊列接收到查詢請求或導出請求后,消息驅動組件從請求消息隊列中獲取查詢請求或導出請求發送給數據庫接口,在數據庫接口返回查詢結果數據或導出數據后將查詢結果數據或導出數據發送給返回消息隊列;
[0152]觸發模塊,還可以用于接收用戶瀏覽器發送的包括標識的結果查詢請求并查詢返回消息隊列是否獲得標識對應的查詢結果數據或導出數據,如果是,則從返回消息隊列獲取標識對應的查詢結果數據或導出數據;將標識對應的查詢結果數據或導出數據返回給用戶瀏覽器進行展示。
[0153]本實施例與上述圖6對應的實施例類似,相關說明可以參見上述實施例,在此不再贅述。
[0154]這樣,本發明實施例通過異步方式實現數據查詢或導出,在生成查詢請求或導出請求后用戶瀏覽器直接返回等待頁面,而不是一直等待后臺數據庫返回查詢或導出結果,此時用戶還可以進行其他操作;啟動線程或進程處理查詢或導出請求,此時WAS不監控自己啟動的線程或其他進程,避免出現線程掛起的警告;最后由用戶主動觸發或采用輪詢的方式查詢請求是否處理完成,根據狀態決定返回等待頁面繼續等待或者展示結果數據,避免了由于數據庫查詢語句執行較慢或者導出數據量過大導致查詢或導出請求長時間沒有響應。
[0155]需要說明的是,本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的系統或裝置而言,由于其與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。
[0156]還需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
[0157]結合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執行的軟件模塊,或者二者的結合來實施。軟件模塊可以置于隨機存儲器(RAM)、內存、只讀存儲器(R0M)、電可編程R0M、電可擦除可編程R0M、寄存器、硬盤、可移動磁盤、CD-ROM、或技術領域內所公知的任意其它形式的存儲介質中。
[0158]對所公開的實施例的上述說明,使本領域專業技術人員能夠實現或使用本發明。對這些實施例的多種修改對本領域的專業技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發明的精神或范圍的情況下,在其它實施例中實現。因此,本發明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。
【主權項】
1.一種實現數據查詢或導出的方法,其特征在于,所述方法包括: 接收用戶瀏覽器發送的請求參數,根據所述請求參數生成查詢請求或導出請求,將所述查詢請求或所述導出請求的標識返回給所述用戶瀏覽器,以使所述用戶瀏覽器在顯示的等待頁面中插入所述標識; 啟動線程或進程向數據庫接口發送所述查詢請求或所述導出請求,接收所述數據庫接口返回的查詢結果數據或導出數據; 接收所述用戶瀏覽器發送的包括所述標識的結果查詢請求,查詢是否獲得所述標識對應的查詢結果數據或導出數據,如果是,則將所述標識對應的查詢結果數據或導出數據返回給所述用戶瀏覽器進行展示。2.根據權利要求1所述的方法,其特征在于,所述方法應用于實現數據查詢或導出的系統,所述系統運行于WebSphere應用服務器WAS,所述系統包括觸發模塊、請求管理器以及線程池; 所述接收用戶瀏覽器發送的請求參數,根據所述請求參數生成查詢請求或導出請求,將所述查詢請求或所述導出請求的標識返回給所述用戶瀏覽器,包括: 所述觸發模塊接收用戶瀏覽器發送的請求參數,根據所述請求參數生成查詢請求或導出請求并發送給所述請求管理器; 所述請求管理器生成所述查詢請求或所述導出請求的標識并發送給所述觸發模塊; 所述觸發模塊將所述標識返回給所述用戶瀏覽器。3.根據權利要求2所述的方法,其特征在于,所述啟動線程或進程向數據庫接口發送所述查詢請求或所述導出請求,接收所述數據庫接口返回的查詢結果數據或導出數據,包括: 所述請求管理器向所述線程池發送所述查詢請求或所述導出請求; 所述線程池啟動線程執行向數據庫接口發送所述查詢請求或所述導出請求,在所述數據庫接口返回查詢結果數據或導出數據后接收所述查詢結果數據或所述導出數據,并通知所述請求管理器已獲得所述標識對應的查詢結果數據或導出數據。4.根據權利要求3所述的方法,其特征在于,所述接收所述用戶瀏覽器發送的包括所述標識的結果查詢請求,查詢是否獲得所述標識對應的查詢結果數據或導出數據,如果是,則將所述標識對應的查詢結果數據或導出數據返回給所述用戶瀏覽器進行展示,包括: 所述觸發模塊接收所述用戶瀏覽器發送的包括所述標識的結果查詢請求并發送給所述請求管理器; 所述請求管理器查詢所述查詢是否獲得所述標識對應的查詢結果數據或導出數據,如果是,則從所述線程池獲取所述標識對應的查詢結果數據或導出數據并發送給所述觸發模塊; 所述觸發模塊將所述標識對應的查詢結果數據或導出數據返回給所述用戶瀏覽器進行展示。5.根據權利要求1所述的方法,其特征在于,所述方法應用于實現數據查詢或導出的系統,所述系統包括觸發模塊、請求數據庫以及后臺進程模塊,所述觸發模塊運行于WebSphere應用服務器WAS; 所述接收用戶瀏覽器發送的請求參數,根據所述請求參數生成查詢請求或導出請求,將所述查詢請求或所述導出請求的標識返回給所述用戶瀏覽器,包括: 所述觸發模塊接收用戶瀏覽器發送的請求參數,根據所述請求參數生成查詢請求或導出請求并發送給所述請求數據庫; 所述請求數據庫生成所述查詢請求或所述導出請求的標識并發送給所述觸發模塊; 所述觸發模塊將所述標識返回給所述用戶瀏覽器。6.根據權利要求5所述的方法,其特征在于,所述啟動線程或進程向數據庫接口發送所述查詢請求或所述導出請求,接收所述數據庫接口返回的查詢結果數據或導出數據,包括: 所述后臺進程模塊中的生產者進程從所述請求數據庫中獲取未處理的所述查詢請求或所述導出請求并放入請求隊列,所述后臺進程模塊中的消費者進程從所述請求隊列中獲取一條所述查詢請求或所述導出請求發送給數據庫接口,在所述數據庫接口返回查詢結果數據或導出數據后將所述查詢結果數據或所述導出數據發送給所述請求數據庫。7.根據權利要求6所述的方法,其特征在于,所述接收所述用戶瀏覽器發送的包括所述標識的結果查詢請求,查詢是否獲得所述標識對應的查詢結果數據或導出數據,如果是,則將所述標識對應的查詢結果數據或導出數據返回給所述用戶瀏覽器進行展示,包括: 所述觸發模塊接收所述用戶瀏覽器發送的包括所述標識的結果查詢請求并發送給所述請求數據庫; 所述請求數據庫查詢所述查詢是否獲得所述標識對應的查詢結果數據或導出數據,如果是,則將所述標識對應的查詢結果數據或導出數據并發送給所述觸發模塊; 所述觸發模塊將所述標識對應的查詢結果數據或導出數據返回給所述用戶瀏覽器進行展示。8.根據權利要求1所述的方法,其特征在于,所述方法應用于所述方法應用于實現數據查詢或導出的系統,所述系統包括觸發模塊、消息中間件以及后臺進程模塊,所述觸發模塊運行于WebSphere應用服務器WAS ; 所述接收用戶瀏覽器發送的請求參數,根據所述請求參數生成查詢請求或導出請求,將所述查詢請求或所述導出請求的標識返回給所述用戶瀏覽器,包括: 所述觸發模塊接收用戶瀏覽器發送的請求參數,根據所述請求參數生成查詢請求或導出請求以及所述查詢請求或所述導出請求的標識; 所述觸發模塊將所述查詢請求或所述導出請求發送給所述消息中間件中的請求消息隊列,并將所述標識返回給所述用戶瀏覽器。9.根據權利要求8所述的方法,其特征在于,所述啟動線程或進程向數據庫接口發送所述查詢請求或所述導出請求,接收所述數據庫接口返回的查詢結果數據或導出數據,包括: 所述后臺進程模塊監聽所述請求消息隊列,當所述請求消息隊列接收到所述查詢請求或所述導出請求后,所述后臺進程中的消息驅動組件從所述請求消息隊列中獲取所述查詢請求或所述導出請求發送給數據庫接口,在所述數據庫接口返回查詢結果數據或導出數據后將所述查詢結果數據或所述導出數據發送給所述消息中間件中的返回消息隊列。10.根據權利要求9所述的方法,其特征在于,所述接收所述用戶瀏覽器發送的包括所述標識的結果查詢請求,查詢是否獲得所述標識對應的查詢結果數據或導出數據,如果是,則將所述標識對應的查詢結果數據或導出數據返回給所述用戶瀏覽器進行展示,包括: 所述觸發模塊接收所述用戶瀏覽器發送的包括所述標識的結果查詢請求并查詢所述返回消息隊列是否獲得所述標識對應的查詢結果數據或導出數據,如果是,則從所述返回消息隊列獲取所述標識對應的查詢結果數據或導出數據; 所述觸發模塊將所述標識對應的查詢結果數據或導出數據返回給所述用戶瀏覽器進行展示。11.一種實現數據查詢或導出的系統,其特征在于,所述系統運行于WebSphere應用服務器WAS,所述系統包括:觸發模塊、請求管理器以及線程池; 所述觸發模塊,用于接收用戶瀏覽器發送的請求參數,根據所述請求參數生成查詢請求或導出請求并發送給所述請求管理器,將所述請求管理器生成的所述查詢請求或所述導出請求的標識返回給所述用戶瀏覽器; 所述請求管理器,用于生成所述查詢請求或所述導出請求的標識并發送給所述觸發模塊;向所述線程池發送所述查詢請求或所述導出請求; 所述線程池,用于啟動線程執行向數據庫接口發送所述查詢請求或所述導出請求,在所述數據庫接口返回查詢結果數據或導出數據后接收所述查詢結果數據或所述導出數據,并通知所述請求管理器已獲得所述標識對應的查詢結果數據或導出數據; 所述觸發模塊,還用于接收所述用戶瀏覽器發送的包括所述標識的結果查詢請求; 所述請求管理器,還用于查詢是否獲得所述標識對應的查詢結果數據或導出數據,如果是,則將所述標識對應的查詢結果數據或導出數據并發送給所述觸發模塊; 所述觸發模塊,還用于將所述標識對應的查詢結果數據或導出數據返回給所述用戶瀏覽器進行展示。12.—種實現數據查詢或導出的系統,其特征在于,所述系統包括:觸發模塊、請求數據庫以及后臺進程模塊,所述觸發模塊運行于WebSphere應用服務器WAS,所述后臺進程模塊包括生產者進程以及消費者進程; 所述觸發模塊,用于接收用戶瀏覽器發送的請求參數,根據所述請求參數生成查詢請求或導出請求并發送給所述請求數據庫,將所述請求數據庫生成的所述查詢請求或所述導出請求的標識返回給所述用戶瀏覽器; 所述請求數據庫,用于生成所述查詢請求或所述導出請求的標識并發送給所述觸發模塊; 所述生產者進程,用于從所述請求數據庫中獲取未處理的所述查詢請求或所述導出請求并放入請求隊列; 所述消費者進程,用于從所述請求隊列中獲取一條所述查詢請求或所述導出請求發送給數據庫接口,在所述數據庫接口返回查詢結果數據或導出數據后將所述查詢結果數據或所述導出數據發送給所述請求數據庫; 所述觸發模塊,還用于接收所述用戶瀏覽器發送的包括所述標識的結果查詢請求并發送給所述請求數據庫; 所述請求數據庫,還用于查詢所述查詢是否獲得所述標識對應的查詢結果數據或導出數據,如果是,則將所述標識對應的查詢結果數據或導出數據并發送給所述觸發模塊;所述觸發模塊,還用于將所述標識對應的查詢結果數據或導出數據返回給所述用戶瀏覽器進行展示。13.一種實現數據查詢或導出的系統,其特征在于,所述系統包括:觸發模塊、消息中間件以及后臺進程模塊,所述觸發模塊運行于WebSphere應用服務器WAS,所述消息中間件包括請求消息隊列以及返回消息隊列; 所述觸發模塊,用于接收用戶瀏覽器發送的請求參數,根據所述請求參數生成查詢請求或導出請求以及所述查詢請求或所述導出請求的標識;將所述查詢請求或所述導出請求發送給所述請求消息隊列,并將所述標識返回給所述用戶瀏覽器; 所述后臺進程模塊,用于監聽所述請求消息隊列,當所述請求消息隊列接收到所述查詢請求或所述導出請求后,消息驅動組件從所述請求消息隊列中獲取所述查詢請求或所述導出請求發送給數據庫接口,在所述數據庫接口返回查詢結果數據或導出數據后將所述查詢結果數據或所述導出數據發送給所述返回消息隊列; 所述觸發模塊,還用于接收所述用戶瀏覽器發送的包括所述標識的結果查詢請求并查詢所述返回消息隊列是否獲得所述標識對應的查詢結果數據或導出數據,如果是,則從所述返回消息隊列獲取所述標識對應的查詢結果數據或導出數據;將所述標識對應的查詢結果數據或導出數據返回給所述用戶瀏覽器進行展示。
【文檔編號】G06F17/30GK106095775SQ201610349481
【公開日】2016年11月9日
【申請日】2016年5月24日
【發明人】熊思明
【申請人】中國銀行股份有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1