本發明涉及一種即時通訊系統組織架構快速更新的方法,屬于計算機數據交互領域。
背景技術:
目前市場上存在的企業即時通信系統更新組織架構機制,基本采用下載完整組織架構方式,即客戶端首次登錄到服務器上下載組織架構文件,等組織架構文件下載完成后才能正常使用。此外,服務器組織架構維護變更,客戶端需要等到下一個更新周期完成后才能顯示最新數據。
在網絡環境擁堵的情況,大組織架構文件容量一般很大,下載到本地需要更多的時間,若此時客戶端查看組織架構,會顯示為空白界面。有可能在下載過程中,用戶應用程序切到后臺,手機操作系統殺掉應用程序進程,下次應用程序需要重新下載,過程有可能又被殺掉,如此反復循環。如果僅用按需拉取,用戶偶爾網絡斷開,本地沒有組織架構,此時無法查看到未拉取過數據。
技術實現要素:
針對現有技術的不足,本發明的技術方案提供了一種即時通訊系統組織架構快速更新的方法,用于解決在絕大部分網絡環境下,大組織架構刷新緩慢問題。
本發明的技術方案包括一種即時通訊系統組織架構快速更新的方法,其特征在于,該方法包括:無組織架構的更新,根據用戶點擊的界面組織架構面版,從服務器獲取對應一級部門列表并在用戶界面進行加載和顯示;部分組織架構的更新,獲取用戶交互信息,進而獲取用戶唯一標識,根據用戶標識下載完整的組織架構并在用戶界面進行加載和顯示;本地完整組織架構的更新,當用戶本地數據有完整的組織架構數據時,加載本地組織架構數據并異步更新組織架構下節點數據;完整組織架構的更新,每隔固定時間從服務器下載更新數據,使用獨立線程對組織結構進行更新,并在更新時暫停客戶端其他線程。
根據所述的即時通訊系統組織架構快速更新的方法,其中無組織架構的更新包括:s21,當客戶端首次登錄并根據用戶所點擊的組織架構面版,客戶端對本地數據進行檢查,若不存在本地數據,則向服務器發送獲取一級部門列表的請求;s22,進一步,檢查一級部門的子部門及用戶信息,若不存在,則調用服務器接口獲取對應一級部門的子部門及用戶信息,并將子部門及用戶信息返回用戶界面進行加載和顯示;s23,根據用戶所點擊的組織架構面版,循環執行所述步驟s21和s23,完成對用戶所點擊的組織架構面版對應的一級部門及其子部門和用戶信息進行加載和顯示。
在一個優選的實施方案中,該方法還包括:每次用戶重新登錄時,向服務器檢查組織架構所缺失的組織架構數據,并對所缺失的組織架構數據進行異步更新直至組織架構完整。
根據所述的即時通訊系統組織架構快速更新的方法,其中部分組織架構的更新包括:s41,獲取歷史與客戶端交互信息,解析交互信息獲取用戶唯一標識;s42,獲取客戶端更新列表,進一步,獲取客戶端未更新的組織架構;s43,將未更新的組織架構進行異步更新,直至客戶端的組織架構完整。
根據所述的即時通訊系統組織架構快速更新的方法,其中本地完整組織架構的更新包括:s51,當客戶端首次登錄并根據用戶所點擊的組織架構面版時,客戶端對本地數據進行檢查,若存在本地數據,則從本地獲取所有組織框架數據;s52,在客戶端加載并顯示對應的組織框架,進一步異步更新組織框架的節點數據。
根據所述的即時通訊系統組織架構快速更新的方法,其中完整組織架構的更新還包括:s61,使服務器每隔固定時間生成組織架構更新數據,客戶端使用獨立線程在指定時間段從服務器獲取組織架構更新數據;s62,將更新任務添加至客戶端工作線程列表,其中客戶端的工作線程為順序執行;s63,執行更新任務的線程時,暫停其他客戶端工作線程,直至更新結束。
根據所述的即時通訊系統組織架構快速更新的方法,其中步驟s63還包括:
將更新任務中的新數據庫文件路徑封裝進更新任務的數據結構,放入組織架構數據庫操作對象的任務隊列,使用組織架構數據庫操作對象執行線程獲取該任務并關閉舊數據庫連接,進而將新數據庫文件覆蓋老數據庫,重新連接上數據庫。
本發明的有益效果為:有效的降低用戶等待組織架構顯示時間,同時偶爾網絡中斷不影響組織架構瀏覽,服務器更新組織架構客戶端能馬上更新。
附圖說明
圖1所示為根據本發明實施方式的總體流程圖;
圖2所示為根據本發明實施方式的本地不存在組織架構更新時序圖;
圖3所示為根據本發明實施方式的本地不存在完整組織架構更新時序圖;
圖4所示為根據本發明實施方式的本地已存在完整組織架構更新時序圖。
具體實施方式
為了使本發明的目的、技術方案和優點更加清楚,下面結合附圖和具體實施例對本發明進行詳細描述。本發明的即時通訊系統組織架構快速更新的方法適用于企業通訊工具的實時更新。
圖1所示為根據本發明實施方式的總體流程圖。其包括:對客戶端本地及客戶端本省的組織架構進行檢查及對比,檢查之后采用相應我的更新方式進行更新。
其中的更新方式包括無組織架構的更新,根據用戶點擊的界面組織架構面版,從服務器獲取對應一級部門列表并在用戶界面進行加載和顯示;部分組織架構的更新,獲取用戶交互信息,進而獲取用戶唯一標識,根據用戶標識下載完整的組織架構并在用戶界面進行加載和顯示;本地完整組織架構的更新,當用戶本地數據有完整的組織架構數據時,加載本地組織架構數據并異步更新組織架構下節點數據;完整組織架構的更新,每隔固定時間從服務器下載更新數據,使用獨立線程對組織結構進行更新,并在更新時暫停客戶端其他線程。
圖2所示為根據本發明實施方式的本地不存在組織架構更新時序圖。用戶首次登錄成功后,點擊界面組織架構面版,此時界面向底層獲取一級部門列表,底層檢查本地數據庫組織架構沒有數據,調用服務器接口獲取一級部門列表,服務器返回后顯示到界面。
用戶展開某個一級部門,流程跟上述一樣,界面向底層獲取該部門的子部門和用戶,底層檢查本地數據庫該一級部門沒有子部門和用戶,調用服務器接口獲取該部門的子部門和用戶,服務器返回后顯示到界面。
界面下來獲取部門的子部門和用戶時,底層都將執行相同流程,檢查數據庫沒有該部門的子部門和用戶時會向服務器獲,然后返回給界面。
此外每天用戶第一次上線,底層都會啟動獨立線程去更新完整組織架構,由于有以上機制保障,更新時間長短不影響用戶正常使用。
圖3所示為根據本發明實施方式的本地不存在完整組織架構更新時序圖。
為了確保用戶正在下載完整組織架構時,可以正常收發消息,收到消息可以正常顯示對方的帳號和姓名,查看對方資料時可以正常顯示對方個人信息,底層收到新消息時,消息體中帶了發送者用戶id(唯一標識),此時底層向數據庫獲取該用戶id的個人信息,數據庫查無此用戶id信息,調用服務器接口獲取該用戶信息,服務器返回后底層組織架構好信息返回給界面顯示。
通過以上的機制,客戶端即使不下載完整組織架構,也可以使用即時通訊基礎功能,但實踐發現手機偶爾出現網絡斷線,如進入電梯,為了盡可能保證用戶能正常瀏覽器組織架構,有度客戶端增加了下載完整組織架構機制。
圖4所示為根據本發明實施方式的本地已存在完整組織架構更新時序圖。
用戶點擊界面組織架構面版,此時界面向底層獲取一級部門列表,底層檢查本地數據庫組織架構不為空,直接從數據庫獲取一級部門列表返回給界面顯示,因此用戶即使在斷網情況下也可以正常瀏覽組織架構。
如果在有網情況下,底層將本地數據拋回給界面后,還異步向服務器更新此部門節點數據,如果服務器組織架構已更新,底層將最新數據再次拋給界面,界面更新最新數據,如此一來,服務器任何時候修改組織架構,在有網的情況下,客戶端都可以馬上更新。
本發明的技術方案還包括完整組織架構更新機制。其包括:
組織架構數據庫操作對象擁有自己的任務隊列和執行線程,所有組織架構數據庫操均封裝為串行操作,因此其他模塊線程向本對象獲取數據時,先將請求放入隊列,并阻塞自己等待執行結果。
組織架構數據庫操作對象執行線程順序執行隊列中的任務,對數據庫進行操作(如:增、刪、改、替換新數據庫等),執行完成后激發等待事件,其他模塊線程被喚醒,獲取操作結果后繼續執行。
服務器每隔5分鐘生成一個組織架構文件,客戶端每天首次上線,底層啟動獨立線程下載更新組織架構文件,下載時先將組織架構文件保存到臨時目錄,避免影響客戶端現在業務響應。
最新組織架構文件下載完整后,告知組織架構數據庫操作對象替換最新數據庫文件,將新數據庫文件路徑封裝進任務的數據結構,放入組織架構數據庫操作對象的任務隊列,組織架構數據庫操作對象執行線程獲取該任務,關閉老數據庫連接,將新數據庫文件覆蓋老數據庫,重新連接上數據庫。
以上所述,只是本發明的較佳實施例而已,本發明并不局限于上述實施方式,只要其以相同的手段達到本發明的技術效果,都應屬于本發明的保護范圍。在本發明的保護范圍內其技術方案和/或實施方式可以有各種不同的修改和變化。