fuite de mémoire ou non?

Eléphanteau du PHP | 10 Messages

22 sept. 2014, 17:06

Bonjour,

Plus ou moins mon code est structurée de la façon suivante.En gros je récupère des données par un curl et je charge 2 bases de données toutes les 6 secondes.Quand je le lance , il marche bien et s'arrête après quelque temps(environ 1 jour et demi).Selon vous,serait ce un problème de fuite de mémoire?
<?php

$url='******';

$bdd= '' ;
$user = 'root';
$password = '*******';
$server = '127.0.0.1';
$db = 'log_database';
$db2 = 'log_stockage';


try
{
$bdd = new PDO("mysql:host=$server;dbname=$db",$user,$password,array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
$bdd2 = new PDO("mysql:host=$server;dbname=$db2",$user,$password,array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}


while(true)
{

$options=array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => true
);

$curl = curl_init();

curl_setopt_array($curl,$options);

try
{
$content = curl_exec($curl);
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}

curl_close($curl);


// i use the variable $content to load some tables in my database

$bdd->exec ("INSERT INTO ***** (****) VALUES ('*****')");
$bdd2->exec("INSERT INTO ***** (****) VALUES ('*****')");

sleep(6);

}

?>
Modifié en dernier par moogli le 22 sept. 2014, 17:28, modifié 1 fois.
Raison : BBCODE PHP !

Eléphant du PHP | 151 Messages

23 sept. 2014, 09:18

Y'a quoi dans tes logs php ?
Tu es en localhost ? Hébergé sur un dédié ?
Un jour et demi de chargement de base toutes les 6 secondes via du curl... #-o #-o #-o
Développeur d'applications pour intranets industriels (IHM), DBA Oracle, auto entrepreneur. Je fuis les frameworks car je pense comme Rasmus Lerdorf : "all PHP frameworks suck"...
Je me suis lancé dans la reprise du projet PhpMyNewsletter (GNU GPL), que je vous invite à essayer.

echo ($user=='enregistré?"je t'aide":"je t'aide pas !");

ViPHP
ViPHP | 1996 Messages

23 sept. 2014, 21:31

Tu charges toutes les 6 secondes ? Peut être atteins-tu la limite de connexion.
Pourquoi ne pas vérifier toutes les 6 secondes
  • que la connexion est active ou pas (avec une connexion persistante par exemple)
    puis lancer le reste du script si elle est active
    ou relancer la connexion si elle ne l'est pas ?
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr