Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 导入csv超时问题_Php_Csv_Import_Timeout - Fatal编程技术网

Php 导入csv超时问题

Php 导入csv超时问题,php,csv,import,timeout,Php,Csv,Import,Timeout,我正在尝试修改csv导入函数,该函数在导入60秒后超时。对于每一行,都有调整大小的图像,并执行一些其他代码 我知道vps可以批量处理这个问题,因为我在同一台服务器上有另一个网站,运行不同的csv程序,但做相同的事情。该程序可以导入8000行并调整图像大小。设置有:处理10行,等待3秒,重复 我提出的设置: 设置时间限制 最大执行时间 浏览器http保持活动超时 我每10行尝试一次sleep(),但这只会使流程导入更少的行 if( (($current_line % 10) == 0) &am

我正在尝试修改csv导入函数,该函数在导入60秒后超时。对于每一行,都有调整大小的图像,并执行一些其他代码

我知道vps可以批量处理这个问题,因为我在同一台服务器上有另一个网站,运行不同的csv程序,但做相同的事情。该程序可以导入8000行并调整图像大小。设置有:处理10行,等待3秒,重复

我提出的设置:

  • 设置时间限制
  • 最大执行时间
  • 浏览器http保持活动超时
我每10行尝试一次sleep(),但这只会使流程导入更少的行

if( (($current_line % 10) == 0) && ($current_line != 0) )
{
  sleep(3);
}
这就是脚本在文件中循环的方式

for ($current_line = 0; $line = fgetcsv($handle, MAX_LINE_SIZE, Tools::getValue('separator')); $current_line++)
{
//code here
}
服务器:

  • 阿帕奇
  • PHP 5.3.3
  • MYSQL
  • 清漆缓存

我能做些什么来实现这一点?当脚本超时时,首先要尝试的是使用。通过命令行运行的脚本没有执行时间限制

如果这不能解决您的问题,那么您知道这不是执行时间限制


第二件事是打印常规状态消息,包括来自的消息,以便消除导致脚本崩溃的内存泄漏。这可能有助于您确定脚本是否因某些输入而死亡。

您可以覆盖默认超时时间。 设置时间限制(0)

使用sleep将使其导入更少的行,基本上脚本超时,因为它需要60秒以上的时间。通过增加睡眠,60秒内完成的工作就更少了


如果这是一个关键的脚本,我会考虑将它移动到另一种编程语言,这样可以更快地执行它。如果只是一次性的,或者不是关键任务,请尝试设置时间限制(0),使其永不超时。还可以尝试在浏览器中键入php scriptname以在命令行中运行脚本。

尝试向浏览器输出内容以保持浏览器的活动状态。如果不活动FF为3分钟,IE将在1分钟后超时

<?
if( (($current_line % 10) == 0) && ($current_line != 0) )
{
  sleep(3);
  echo '. ';
}
?>

我在每一行上都添加了一个文件,内存使用量在8.25MB到8.75mb之间。我无法执行命令行导入,在尝试了2小时后我放弃了。请更新您的问题,并添加有关您尝试从命令行运行脚本的更多详细信息。