需求是希望大數(shù)據(jù)量的文件能做到頁(yè)面篩選條件后以excel形式即時(shí)下載。
數(shù)據(jù)量最大能有1000W,數(shù)據(jù)從庫(kù)中查出來(lái)后還要經(jīng)過(guò)一系列過(guò)濾查詢(xún)等,所以耗時(shí)比較長(zhǎng)。
嘗試過(guò)workman開(kāi)幾個(gè)進(jìn)程,但是每次一個(gè)請(qǐng)求過(guò)來(lái)還是只有一個(gè)進(jìn)程在執(zhí)行,能否實(shí)現(xiàn)數(shù)據(jù)按量分批,每批跑一個(gè)進(jìn)程,這樣總耗時(shí)就是執(zhí)行最慢的那一批,最后結(jié)果再匯總。
請(qǐng)實(shí)現(xiàn)過(guò)的大神賜教,謝謝。
自行分批發(fā)送到多個(gè)任務(wù)進(jìn)程,自行監(jiān)聽(tīng)任務(wù)執(zhí)行狀況,自行合并數(shù)據(jù),但是這個(gè)是異步,沒(méi)法實(shí)現(xiàn)即時(shí)下載
要即時(shí)可考慮使用swoole的協(xié)程,依舊要自行分批自行合并.
“自行分批發(fā)送到多個(gè)任務(wù)進(jìn)程” 可以理解為,發(fā)起下載請(qǐng)求時(shí)就得拆成多個(gè)并發(fā)請(qǐng)求,一個(gè)請(qǐng)求只能對(duì)應(yīng)一個(gè)workman任務(wù)進(jìn)程,不能等請(qǐng)求過(guò)來(lái)了再占用多個(gè)進(jìn)程去處理,否則只能考慮swoole的協(xié)程,是否如此?
不是,看你的需求
區(qū)別就是點(diǎn)下載后,允許跳轉(zhuǎn)頁(yè)面去做其他的事,等合并完再通知下載,那workerman就可以, 如果必需要求在當(dāng)前頁(yè)面等,那swoole,
以上情況只適用于,僅限http,不借助長(zhǎng)連接的情況下
查詢(xún)條件參數(shù)建議丟隊(duì)列,隊(duì)列開(kāi)進(jìn)程去導(dǎo)出然后寫(xiě)入記錄到任務(wù)數(shù)據(jù)表標(biāo)記完成,使用迅雷下載。
swoole 協(xié)程也是單進(jìn)程的,你這個(gè)它完成不了。