Php 导入csv超时问题
我正在尝试修改csv导入函数,该函数在导入60秒后超时。对于每一行,都有调整大小的图像,并执行一些其他代码 我知道vps可以批量处理这个问题,因为我在同一台服务器上有另一个网站,运行不同的csv程序,但做相同的事情。该程序可以导入8000行并调整图像大小。设置有:处理10行,等待3秒,重复 我提出的设置: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
- 设置时间限制
- 最大执行时间
- 浏览器http保持活动超时
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小时后我放弃了。请更新您的问题,并添加有关您尝试从命令行运行脚本的更多详细信息。