一、耗時長的任務:消耗時間長的任務,以睡眠兩秒為例。
二、耗時短的任務:消耗時間短的任務,以分配耗時長的任務到指定程序為例。
三、任務分配程序:非同步程序。將收到的長耗時任務 以對同一使用者的多次操作要排隊的原則 分配到任務程序。
補充:1. hash:key + value,以key取值的圓環式增長實現hash圓環。
1.1 hash:key+1儲存未被分發的任務,max_key記錄當前最大的key,min_key記錄當前未被分發出去的最小的key。
2.儲存未完成的正在處理的任務。
3.任務處理完成後向分配任務程序傳送已完成任務。
4.發放任務前檢查未完成的任務,如果當前要傳送的任務的user存在未被執行完的任務則當前的任務不可發放。
5.如果積壓了大量未被發放的任務,怎麼處理?
尚未做:模擬該方案的具體實現。
BASH 非互動執行耗時長的任務
問題 你讓工作在後台進行,並且退出 shell 去喝個咖啡,當你回來檢視的時候,發現工作沒有執行並且沒有完成,實際上工作沒有進行多少,跟你離開工作台的時候差不多。解決方案 如果你希望在後台執行某個任務,並且在任務完成前退出 shell 可以使用 nohup 命令 nohup long 討論 當使用 ...
WEB耗時任務的處理方案
最近有乙個需求,從網頁上傳乙個文字包到後台處理,處理時長可能在幾分鐘到幾十分鐘。原來的方案就是直接接收乙個ajax請求處理資料,然後返回。遇到的問題是 經過十幾分鐘的處理後,後台返回結果到前端,前端收不到該結果了。我想應該是http連線超時了,除非長連線,沒有哪個請求可以這樣無限制地等待。於是著手改...
統計各個函式的耗時 iOS App啟動時長統計方法
常見的 ios 啟動時長測試方法,主要有以下幾種 方法 2 可以精確獲取各個啟動項耗時,但和實際使用者體驗感受有一定出入,且需要拿到客戶端原始碼,將工具嵌入客戶端中 xrecord安裝 git clone,找到bin xrecord 檢視mac上可錄製裝置 xrecord quicktime lis...