服务器可以处理多长时间是否有限制?

时间:2011-08-07 08:55:59

标签: php apache mysqli runtime client-server

我有以下文件处理单个XML 文件并将其作为一行推送到数据库中。单个文件完美

现在我想把所有文件放在这样的目录中,然后编写一个脚本来遍历目录并逐个推送其中的所有文件。并且 是的,它确实有效,但在处理XX(可变)文件数量后停止了

虽然我的XML文件可能有问题,所以决定在目录中只安装SINGLE XML文件(之前已完美处理),然后循环遍历它,插入数百次,以便我可以确认它我的文件有问题。但猜猜发生了什么?

处理XX(可变)文件数量后,处理停止。在我的下面的例子中,它在重复尝试后停在110(计数器值),111,99等。它应该处理1000个文件。

<?php
include_once '../includeTop.php';

header ( 'Content-type: text/xml' );

echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
$dir = "../../newHotelFiles";
$file = NULL;
$fileName = "noFileName";

$processed = 0;
util::writeToLog ( $dir . '/progressData.tmp', "Files processed: $processed" );
try {

    echo XMLInterface::openTag ( "start" );
    for($counter = 0; $counter < 1000; $counter ++) {
        $dirHandle = opendir ( '../../newHotelFiles' );
        while ( false !== ($file = readdir ( $dirHandle )) ) {
            //process my files codes

                $processed ++;
                util::writeToLog ( $dir . '/progressData.tmp', "Files processed: $processed" );


            }

        }

    //util::writeToLog($dir.'/progressData.tmp', "Done ".$counter);
    }
    echo XMLInterface::closeTag ( "start" );
    exit ();
} catch ( Exception $e ) {
    echo XMLInterface::failure ( "Error occured. Written to the log file - $file.log" );
    util::writeToLog ( "../../newHotelFiles/$fileName.log", ExceptionHandler::error_msg ( $e ) );
    exit ();
}

?>

有什么问题?它是脚本(我怀疑它在for循环不存在时是否有效)或者是否有任何服务器端限制我不知道

2 个答案:

答案 0 :(得分:2)

php中有一个名为set_time_limit()的最大执行时间限制; (和其他人一样)

        set_time_limit(0); // sets to unlimited

答案 1 :(得分:1)

由于时间限制,脚本可能正在中止。尝试修改set_time_limit