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