使用PHPExcel导出excel文件,大约需要2分钟,导致504

环境:PHP + nginx的; 我使用PHPExcel导出和导入excel文件,这个操作大约需要两分钟的时间,导致504网关超时。 而nginx的factcgi_connect / read / send_timeout是30s; 不要更改nginx设置,我该怎么办?

在“离线”批处理模式下运行文件生成过程。 贝宝为某些报告执行此操作 – 您请求报告,立即通知其处于处理中,处理完成(通常是几秒钟,但可能会更长),状态页面会更新,您将收到通知电子邮件。 基本步骤:

  1. 创建一个新的待处理报告表。
  2. 当用户请求报告时,添加一个“新”状态
  3. 添加一个作为cronjob运行的新进程(例如每5分钟),将状态更改为“处理”,创建报告,然后将状态更改为“已完成”,并将报告存储在可访问的位置(例如,基于报表表记录id)
  4. 添加状态页面以向用户显示其报告的状态,包括下载链接(如果“已完成”)。

这是一个工作,但PHP使得它很容易,因为你可以从命令行运行相同的代码,并作为一个Web进程。