1.需求背景
在nc人力資源模組有些業務計算非常耗時,比如薪資,排班,假期等等,在伺服器使用nginx等反向**的情況下,不會進行長時間的等待,而且長時間等待也是非常不好的體驗。所以將計算做成非同步任務就應運而生,即伺服器收到請求後,另起執行緒執行任務,請求執行緒直接響應回去。如此不會影響客戶端進行其他操作,但是任務在後台執行,前端需要可以查詢相關任務的進度。那麼進度資訊可以通過兩種方式進行反饋,一是客戶端進行輪詢,二是服務端實時推送,第一種方式比較簡單不做贅述,這裡講第二種方式的實現。
2.實現依賴
nio,nc遠端呼叫資訊(remoteinvocation)
3.具體步驟
1>流程圖
2>服務端實現重點
1.註冊服務元件,在nc服務啟動時,初始化serversocketchannel的類,使用單例模式
2.初始化乙個同步map容器用來裝客戶端socket,key是clientip,value是socketchannel,請求連線時註冊
3.selector還是要註冊read事件,用於監聽客戶端的連線斷開
4.為了防止粘包,傳送訊息物件時,將實體物件的size放在前面一併傳送
3>客戶端實現重點
1.第一次請求時,初始化socketchannel,與伺服器建立連線,使用單例
2.初始化乙個同步map容器用來裝客戶端的進度顯示器,key是callid(任務id),value是progress
3.selector註冊read事件,用於監聽服務端傳送的資料和監聽服務端的連線斷開
4.讀資料時,先讀size,再使用size長度的bytebuffer讀實體資料,讀完後傳送給對應callid的progress
用友NC6「以人為本」 加速企業管理創新
近年來,製造業工人工資的快速 和有效勞動力的逐年減少,正逐漸改變30年來中國經濟賴以高速增長的基礎 大量廉價勞動力,人口紅利逐漸消失的問題是中國企業不得不直視的乙個嚴峻問題。在人力成本不斷攀公升的今天,如何提高人員效能,最大限度挖掘內部利潤區,成為企業管理公升級的重要方向之一。作為亞太本土最大的管理...
用友NC6「以人為本」 加速企業管理創新
近年來,製造業工人工資的快速 和有效勞動力的逐年減少,正逐漸改變30年來中國經濟賴以高速增長的基礎 大量廉價勞動力,人口紅利逐漸消失的問題是中國企業不得不直視的乙個嚴峻問題。在人力成本不斷攀公升的今天,如何提高人員效能,最大限度挖掘內部利潤區,成為企業管理公升級的重要方向之一。作為亞太本土最大的管理...
NC6 關於去除Int型別千分位符號
nc裡有資料格式節點,顯示不同語種對於數字,日期等格式的要求,對不同的使用者可以設定不同的資料格式,但是這種格式設定是面對所有欄位的,如果需要對個別欄位有特殊的格式要求,那麼就要進行二開,如下。將integer型別千分位去除,重新設定渲染器 繼承billtablecellrenderer重寫setv...