我正在运行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,有时一个特殊字符会使脚本中断。