一次性生成多个任务 or 在一个任务中多次处理?

需求:上传Excel表,将Excel表格中的按行将数据导入到指定模板中,生成文件(word or pdf) 并提供打包下载;

暂时不讨论需求有多恶心(明明使用word邮件合并即可解决的问题。。。),我们还是得想办法解决啊。

将一条数据放在指定的模板生成pdf文件,打包下载,这些基本的都没什么问题。这里想请教的一个问题是:

我这里定义了一个队列处理生成pdf,是一次性将excel数据全部丢给队列,然后在handle中循环生成pdf?还是在response前端前将数据拆分成多个任务,循环加入队列,然后一个任务处理生成一个pdf文件?

我这里选用一次性丢给queue,但是php处理起来。。。太吃力了,不知各位有何解药没?

猛跑小猪
浏览 353回答 5
5回答

繁花如伊

我觉得问题不是在队列和php 上,无论是那种都是很快处理逻辑的,慢是慢在生成 pdf 文件所做成的IO 损失上

慕慕森

看你自己业务需要。你这种就好比,一个人处理50个任务(A)和同时50个人一起处理50个任务(B),两者各有优势。A的优势是50个任务之间的消息共享,劣势就是处理慢问题;B的优势就是处理快,但各个任务直接的信息不共享(无法其他人完成了)

沧海一幻觉

我觉得你既然一次性丢给queue,那就没必要用队列了,直接开多个子进程来处理如果要用队列,就一行一行入队列,开多个进程来处理队列
打开App,查看更多内容
随时随地看视频慕课网APP