データベースからデータを選択し、結果をループし、結果の行ごとに別のスクリプトを実行する、毎日スクリプトを実行します。 2番目のスクリプトは、より多くのクエリを実行し、データからXMLファイルを作成します。時には、大量のデータが存在することがあります。Cronjobとスクリプトタイムアウト/メモリクエリを実行しているPHP
//RUN SCRIPT DAILY TO GET ALL CATEGORY AND PRODUCT XML FOR STORES
set_time_limit(0);
$select= "SELECT * FROM bookstores" ;
$run = mysql_query($select);
while($row = mysql_fetch_array($run)){
//run 2nd script here but how?
}
は、I 2つの質問があります
1)whileループで第二スクリプトを実行するための最良の方法は何ですか? 2行目でスクリプトを再実行する前に、最初の行の2番目のスクリプトを完了する必要がありますか、それともすべて同じように実行しますか?
2)私は2番目のスクリプトを実行すると、あまりにも多くの結果がある場合を除き、それは、その場合には、私は以下のエラーを取得し、ほとんどの作品:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 71 bytes) in /var/www/web/classes/class.Products.inc.php on line 90
ウィル実行しているかから、この停止スクリプト1はそれを意志次の行に移動してスクリプトを再実行しますか?注意両方のスクリプトでset_time_limit()関数を使用しました。
クラッシュせずに最高の成果をあげるための助けとアドバイスについて、多くの方に感謝します。
ちょっと考えましたが、おそらく2番目のスクリプトのコードを組み込むと、可能であれば、最適化を指摘して助けてくれるかもしれません。 –