Home >Backend Development >PHP Tutorial >php需要较长时间的运算的解决方案

php需要较长时间的运算的解决方案

WBOY
WBOYOriginal
2016-06-06 20:07:101079browse

系统报表功能,需求希望能一键计算,不在乎计算时间,然后导出excel就行。
6000条sql,没有优化余地,使用的mssql2000,thinkphp3.1 ,数据库设计的不太好,但是线上项目,暂时没精力调整。
程序写完后,运行要600s跟死机了一样,大家遇到这种情况一般怎么解决?

回复内容:

系统报表功能,需求希望能一键计算,不在乎计算时间,然后导出excel就行。
6000条sql,没有优化余地,使用的mssql2000,thinkphp3.1 ,数据库设计的不太好,但是线上项目,暂时没精力调整。
程序写完后,运行要600s跟死机了一样,大家遇到这种情况一般怎么解决?

thinkphp支持命令行模式运行,然后你跑一个linux/windows定时任务,0点这种去执行生成excel发一个邮件之类的即可

建议用redis做个队列 既然是做报表统计 就可以弄个定时任务

可以用缓存,用定时任务将结果进行缓存

让程序在命令行命令行运行。运行的结果存在一个表中。
导出的时候,直接导出这个表。

一般这种长时间的,就是在后台执行。前台发起请求,然后提示:后台处理中,请稍候查看。后台可以用队列等方式去生成excel。然后发送到指定邮箱或者提供一个下载链接。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn