求助:workman能多开进程做下载么

gy36000

需求是希望大数据量的文件能做到页面筛选条件后以excel形式即时下载。

数据量最大能有1000W,数据从库中查出来后还要经过一系列过滤查询等,所以耗时比较长。

尝试过workman开几个进程,但是每次一个请求过来还是只有一个进程在执行,能否实现数据按量分批,每批跑一个进程,这样总耗时就是执行最慢的那一批,最后结果再汇总。

请实现过的大神赐教,谢谢。

778 2 0
2个回答

nitron

自行分批发送到多个任务进程,自行监听任务执行状况,自行合并数据,但是这个是异步,没法实现即时下载
要即时可考虑使用swoole的协程,依旧要自行分批自行合并.

  • 杨柳岸 2022-07-28

    耗时长只能异步excel生成完成后,websocket通知浏览器自动响应下载

  • gy36000 2022-07-29

    “自行分批发送到多个任务进程” 可以理解为,发起下载请求时就得拆成多个并发请求,一个请求只能对应一个workman任务进程,不能等请求过来了再占用多个进程去处理,否则只能考虑swoole的协程,是否如此?

  • nitron 2022-07-29

    不是,看你的需求
    区别就是点下载后,允许跳转页面去做其他的事,等合并完再通知下载,那workerman就可以, 如果必需要求在当前页面等,那swoole,

    以上情况只适用于,仅限http,不借助长连接的情况下

meows

查询条件参数建议丢队列,队列开进程去导出然后写入记录到任务数据表标记完成,使用迅雷下载。
swoole 协程也是单进程的,你这个它完成不了。

  • 暂无评论
年代过于久远,无法发表回答
🔝