中间的 PHP 脚本中断,用于大文件解析



我正在运行cron以从ERP库存csv文件更新数据库中的库存。ERP 清单 CSV 文件几乎包含19K record。Cron 将逐一拾取所有记录,并更新数据库中匹配的库存。但是由于几天在 19K 记录中 13K-14k 记录仅按文件解析,中间的脚本中断。

我也尝试直接从浏览器运行脚本,但它引发了同样的问题。错误日志中不显示任何错误。

我在想它的超时问题并将max_execution_time增加到1500 (25min).但问题尚未解决。

任何人都可以建议我如何解决这个问题?提前感谢!

你检查过 cron-log 吗?您使用的是哪种操作系统?

错误日志中不显示任何错误。

然后,您的第一个操作过程是验证错误日志记录是否按预期工作。如果是 (PHP( 超时或内存限制问题,则原因将被标记 - 但可能不会报告。

你忘了告诉我们cron是如何运行任务的 - 这是通过CLI SAPI还是使用http客户端(wget,curl等(通过Web服务器调用?SAPI具有非常不同的行为,通常使用单独的php.ini文件。

我在想它的超时问题

因为您已经检查过并且它总是在启动后以相同的间隔爆炸?

但是由于几天在19K记录中13K-14k记录仅解析

以前完成它所花费的时间少于确定的时间?

并增加max_execution_time

如何?在剧本里?在(右(php.ini?请注意,如果脚本通过 Web 服务器运行,则 Web 服务器上也可能配置了超时。

您可以考虑在脚本前面加上以下内容:

set_time_limit(3000);
error_reporting(E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);

并从脚本中捕获标准和标准输出。

尝试将csv 分成 2 个文件并执行 cron 我认为您的 csv 文件有问题。 如果其中一个执行没有问题,则进程没有问题,重复进程以查找有问题的块。 几年来,我使用一个接口来读取文件以导出到SAP,有时一个特殊字符会使脚本中断。

最新更新