关于PHP 504错误的长期预告

时间:2016-03-21 18:18:10

标签: php mysql nginx foreach

我正在开发软件文档控制工具。

我需要生成所有使用该软件的公司的报告,并确定他们的车辆是否有允许驾驶的车辆。

对于拥有权限的车辆,控制的文件超过10个,有效期,纸质库存等。

报告应与此类似:

公司1: - 车辆1 - 车辆2 - 车辆3 -....

公司2 -Vehicle 232 -Vehicle 456 -....

我按照每辆车做一个foreach,每个文件做一个foreach。

对于要执行的控件类型,不可能在单个查询MySQL中执行所有操作。

我的问题是nginx总是让我“504网关超时”需要很长时间。

我想知道是否有一些技术可以运行服务器端脚本,就像它在后台一样,完成后将文件保存到服务器并通过电子邮件通知用户。

我在其他几个项目中遇到此问题,其中CRONS运行该更新数据。如果数据量非常大,那么scritp会在完成之前停止。 服务器是nginx / 1.4.6(Ubuntu)。我不想增加max_execution_time。

1 个答案:

答案 0 :(得分:0)

忽略用户中止可能会对您有所帮助 - http://php.net/manual/en/function.ignore-user-abort.php

但是,我要么修改过程以消除foreach循环,要么只是将进程拆分为较小的块并设置一个cron作业来一次执行一个块。