Goedendag,
ik heb een probleem en ik hoop dat iemand me daarmee kan helpen.
Kort samengevat:
Een file genaamd 'fill_zm' maakt gebruik van een for-loop function. In de functie worden in totaal 7x3=21 variabelen opgevraagt uit andere functies. De functie zet deze variabelen automatisch in een database.
Bij Cpanel laat ik deze command elke minuut lopen. Maar ik krijg bericht dat de cronjob veel te lang duurt. In extreme gevallen nam de cronjob tussen de 70 en 100 seconden in beslag. Terwijl doorgaans deze loop 4 tot 7 seconden duurt.
Ik heb geprobeerd om het probleem op te lossen door een if-statement te plaatsen. Hiermee wil ik bereiken dat als de loop meer dan 15seconden draait , de loop '0' returend, zodat hij stopt. Alleen het probleem treedt nog steeds op..
Hieronder de code:
[PHP]<?php
date_default_timezone_set('Europe/Amsterdam');
set_time_limit(40);
$time_start_total = microtime(true);
$time_inside = microtime(true);
include('decibel_zm.php');
include('skyradio_zm.php');
include('veronica_zm.php');
include('wildfm_zm.php');
include('tmfhitradio_zm.php');
include('skylove_zm.php');
include('classicfm_zm.php');
include('../connectdb.php');
include('../find.php');
$time_inside_end = microtime(true);
$time = $time_inside_end - $time_inside;
echo $time . ' ' . 'begin' . '<br><br>';
for($i = 0; $i < 1; $i++) {
$time_inside = microtime(true);
$song = wildfm_zm();
$title = addslashes($song[1]);
$artist = addslashes($song[0]);
mysql_query("REPLACE zometeen (radio, lyric, title, artist) values('$song[2]', 'None', '$title', '$artist')");
$time_inside_end = microtime(true);
$time = $time_inside_end - $time_inside;
echo '<strong>----- Time for wildfm is: ';
echo $time_inside_end - $time_inside . '<br /><br /></strong>';
echo $time;
if ($time > 10) {
return 0;
}
$song = veronica_zm();
$title = addslashes($song[1]);
$artist = addslashes($song[0]);
mysql_query("REPLACE zometeen (radio, lyric, title, artist) values('$song[2]', 'None', '$title', '$artist')");
$time_inside_end = microtime(true);
$time = $time_inside_end - $time_inside;
echo '<strong>----- Time for +veronica is: ';
echo $time_inside_end - $time_inside . '<br /><br /></strong>';
echo $time;
if ($time > 10) {
return 0;
}
$song = skyradio_zm();
$title = addslashes($song[1]);
$artist = addslashes($song[0]);
mysql_query("REPLACE zometeen (radio, lyric, title, artist) values('$song[2]', 'None', '$title', '$artist')");
$time_inside_end = microtime(true);
$time = $time_inside_end - $time_inside;
echo '<strong>----- Time for +skyradio is: ';
echo $time_inside_end - $time_inside . '<br /><br /></strong>';
echo $time;
if ($time > 10) {
return 0;
}
$song = decibel_zm();
$title = addslashes($song[1]);
$artist = addslashes($song[0]);
mysql_query("REPLACE zometeen (radio, lyric, title, artist) values('$song[2]', 'None', '$title', '$artist')");
$time_inside_end = microtime(true);
$time = $time_inside_end - $time_inside;
echo '<strong>----- Time for +decibel is: ';
echo $time_inside_end - $time_inside . '<br /><br /></strong>';
echo $time;
if ($time > 11) {
return 0;
}
$song = classicfm_zm();
$title = addslashes($song[1]);
$artist = addslashes($song[0]);
mysql_query("REPLACE zometeen (radio, lyric, title, artist) values('$song[2]', 'None', '$title', '$artist')");
$time_inside_end = microtime(true);
$time = $time_inside_end - $time_inside;
echo '<strong>----- Time for +classicfm is: ';
echo $time_inside_end - $time_inside . '<br /><br /></strong>';
echo $time;
if ($time > 11) {
return 0;
}
$song = skylove_zm();
$title = addslashes($song[1]);
$artist = addslashes($song[0]);
mysql_query("REPLACE zometeen (radio, lyric, title, artist) values('$song[2]', 'None', '$title', '$artist')");
$time_inside_end = microtime(true);
$time = $time_inside_end - $time_inside;
echo '<strong>----- Time for +skylove is: ';
echo $time_inside_end - $time_inside . '<br /><br /></strong>';
echo $time;
if ($time > 11) {
return 0;
}
$song = tmfhitradio_zm();
$title = addslashes($song[1]);
$artist = addslashes($song[0]);
mysql_query("REPLACE zometeen (radio, lyric, title, artist) values('$song[2]', 'None', '$title', '$artist')");
$time_inside_end = microtime(true);
$time = $time_inside_end - $time_inside;
echo '<strong>----- Time for one loop is: ';
echo $time_inside_end - $time_inside . '<br /><br /></strong>';
echo $time;
if ($time > 13) {
return 0;
}
}
$time_end_total = microtime(true);
echo 'Total time elapsed running this script: <strong>';
echo $time_end_total - $time_start_total . '</strong>';[/PHP]
Ik hoop dat iemand een idee heeft wat de oorzaak is.
Bedankt voor het lezen.
Vdieduksman