摘要:不知道下面的想法對不對,如有錯誤還請大佬斧正需求分析有一批設備,數量很多,需要為他們開啟遠程驅動即調用后臺的遠程驅動接口問題是后臺處理遠程驅動只能一臺一臺設備處理,如果設備數量很多,后臺在內處理不完就會最開始的辦法,將所以設備統統交給后臺,
不知道下面的想法對不對,如有錯誤還請大佬斧正 需求分析
有一批設備,數量很多,需要為他們開啟遠程驅動(即調用后臺的遠程驅動接口),問題是后臺處理遠程驅動只能一臺一臺設備處理,如果設備數量很多,后臺php 在30s 內處理不完就會 timeout
最開始的辦法,將所以設備統統交給后臺,接口只請求一次,這樣做的結果是,這個請求常常超時(不可用)
因為后臺無法一次處理這么多數據,所以請求超時
第二種想法:將所有設備分組,比如 3個一組,然后循環分組好的列表數組,在循環內部用閉包進行訪問請求
這樣做的結果是會有很多個ajax請求在同時進行,也無法得到所有請求結束的時刻的鉤子
第三種想法(我們老大的想法):模擬線程操作,模擬同時開啟多個線程,所有請求即設備列表放在一個線程池內(數組),每個線程的工作,只有當本次工作完成后,才可以繼續去線程池內去拿新任務(即發送新情求),這樣就可以控制同時請求的個數(線程數)以及請求結束的時刻的鉤子。
代碼Document
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/84299.html
摘要:偽線程重點瀏覽器的內核是多線程的,一個瀏覽器一般至少實現三個常駐線程引擎線程,渲染線程,瀏覽器事件觸發線程。當我們要循環過百萬級的數據甚至億的時候怎么辦那就用模擬一個多線程。 web worker 這里就不多說了,主要說偽線程。因為web worker不能操作dom元素,很多時候用不上。 偽線程 重點:瀏覽器的內核是多線程的,一個瀏覽器一般至少實現三個常駐線程:javascript引擎...
摘要:調用棧被清空,消息隊列中并無任務,線程停止,事件循環結束。不確定的時間點請求返回,將設定好的回調函數放入消息隊列。調用棧執行完畢執行消息隊列任務。請求并發回調函數執行順序無法確定。 異步編程 JavaScript中異步編程問題可以說是基礎中的重點,也是比較難理解的地方。首先要弄懂的是什么叫異步? 我們的代碼在執行的時候是從上到下按順序執行,一段代碼執行了之后才會執行下一段代碼,這種方式...
摘要:瀏覽器渲染進程瀏覽器內核進程,內部是多線程的默認每個頁面一個進程,互不影響。事件觸發線程歸屬于瀏覽器而不是引擎,用來控制事件循環可以理解成引擎自己都忙不過來,需要瀏覽器另開線程協助。 線程和進程 進程和線程的概念可以這樣理解: 進程是一個工廠,工廠有它的獨立資源--工廠之間相互獨立--線程是工廠中的工人,多個工人協作完成任務--工廠內有一個或多個工人--工人之間共享空間 工廠有多個工人...
閱讀 688·2021-11-18 10:07
閱讀 2878·2021-09-22 16:04
閱讀 873·2021-08-16 10:50
閱讀 3326·2019-08-30 15:56
閱讀 1784·2019-08-29 13:22
閱讀 2648·2019-08-26 17:15
閱讀 1229·2019-08-26 10:57
閱讀 1103·2019-08-23 15:23