请教一个使用队列导出excel的问题

导出excel是使用php去直接下载的。我在使用队列时,它并没有按照我预期从浏览器下载,而是在我终端运行php artisan queue:work时在终端进行下载,从而导至错误。
请问我想让它下载时加入到队列,并且在浏览器里调用下载

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

搞清楚http是无状态的,请求只是把任务塞进队列之后就返回了,队列会异步运行,如果想在浏览器下载,可以创建队列任务的时候插入一条excel生成历史,记录进度,等进度100就可以创建一个文件下载,用户手动下载了

2年前 评论
浪里小白龙 (楼主) 2年前
讨论数量: 6

我想你可能需要清楚以下几个问题点

  1. Queue 能不能直接与你的浏览器通信
  2. 队列的作用是什么

在你使用一个物品之前你需要知道这个物品是为了解决什么而产生。

2年前 评论

前端请求导出之后,队列生成文件,前端轮询请求后端接口(返回下载导出文件下载地址),队列完成之后,接口返回下载地址,前端请求地址下载

2年前 评论
浪里小白龙 (楼主) 2年前

搞清楚http是无状态的,请求只是把任务塞进队列之后就返回了,队列会异步运行,如果想在浏览器下载,可以创建队列任务的时候插入一条excel生成历史,记录进度,等进度100就可以创建一个文件下载,用户手动下载了

2年前 评论
浪里小白龙 (楼主) 2年前
sanders

也可以换个思路,通过广播把数据推给前端,让前端使用 sheetjs 流式写入 xlsx 文件。

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!