-1

phpcassa を使用して、テキスト ファイルから 1000000 レコードをCassandraにロードしようとしています。しかし、読み込みプロセスの途中で、次のエラーが発生しました。

PHP 致命的なエラー: 行 759** で /usr/share/php/phpcassa/columnfamily.php の最大実行時間が 30 秒を超えました

実行時間を増やすにはどうすればよいですか? のパラメータを変更する必要がありますcolumnfamily.phpか? 以下の私のコードを見つけてください。

 <?
     require_once('phpcassa/connection.php');
     require_once('phpcassa/columnfamily.php');
     try {
     $servers = array("127.0.0.1:9160");
     $pool = new ConnectionPool("Keyspace1", $servers);
     $column_family = new ColumnFamily($pool, 'Product');
     $cnt=0;
     $files = fopen("dump.txt", "r");

     $mtime = microtime();
     $mtime = explode(" ",$mtime);
     $mtime = $mtime[1] + $mtime[0];
     $starttime = $mtime;

     while (!feof($files)) {
         $line = fgets($files);
         $keyname="P".$cnt;
         $split_line = explode("," , $line);
         for ($i=0;$i<count($split_line);$i++) {
             //echo $split_line[$i];
             $column_family->insert(
                 $keyname, array(
                     'code' => $split_line[0] ,
                     'pname' => $split_line[1] ,
                     'price' => $split_line[2]
                 )
             );
         }
         $cnt += 1;
     }
     $mtime = microtime();
     $mtime = explode(" ",$mtime);
     $mtime = $mtime[1] + $mtime[0];
     $endtime = $mtime;

     fclose($files);

     $totaltime = ($endtime - $starttime);
     echo "$cnt keys loaded in ".$totaltime." seconds";

     }
     catch (Exception $e)
     {
         echo 'Exception: ' . $e->getMessage();
     }
 ?>
4

3 に答える 3

2

これをスクリプトの先頭に追加してみてください: set_time_limit(0);

于 2011-06-09T15:07:31.243 に答える
0

set_time_limitを参照してください。

より一般的には、Webサーバー環境内で一括読み込みを行うこと(これが正しいですか?)は最善のアイデアではありません。どちらも単一のスレッドでそれを行っていません。しかし、たった100万行の場合、これは適切に機能すると思います。

于 2011-06-09T15:13:17.473 に答える
0

ファイルのmax_execution_time制限を増やしてください。php.iniこれで回避できPHP Fatal error: Maximum execution time of 30 secondsます。デフォルトでは、Web サーバーでの最大実行時間は 30 秒のままです。

その量を変更して、サーバーでの特定の実行により多くの時間を提供できます。

max_execution_time = 1200;
于 2013-06-07T18:04:14.907 に答える