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