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