Programmer exécution de script sans cron

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

27 avr. 2007, 17:35

Sinon je suis toujours prenneur pour l'explication des index unique, car je pense Naholyr avoir respecté ce qui était en gras dans ta solution, mais après j'ai peut être compris de travers ce qu'est un index unique, si tu puovais m'expliquer ce serait simpa!
Jette un oeil aux différents index (dont UNIQUE) sur http://dev.mysql.com/doc/refman/5.0/fr/indexes.html

Mammouth du PHP | 555 Messages

27 avr. 2007, 18:23

Wow Sadeq t'es trop fort! Une seconde supplémentaire d'économisée presque!
Sinon je me suis un peu baladé sur le site que tu m'as donné Naholyr et j'ai appris pas mal de trucs, comme ce qu'étais globalement un index, ce dont je ne me sert jamais car je n'en soupconnait pas l'existence...

Voila la syntaxe exacte de la table meteo
CREATE TABLE `meteo` (
  `id` int(11) NOT NULL auto_increment,
  `x` int(11) NOT NULL,
  `y` int(11) NOT NULL,
  `temps` varchar(10) NOT NULL,
  `level` int(11) NOT NULL,
  KEY `id` (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COMMENT='table qui gère le temps qu''il fait';

Sinon une idée pour les id? (selectionner l'id d'un enregistrement qu'on vient de modifier en une seule requete)
Merci à tous et belle optimisation Sadeq :wink:


La dernière version de la fonction
function meteo ()
{
 $ndf = 1; //nombre de figures rentrées en array
 $figs = array();
 //syntaxe level x y
 //le rond
 $figs[0] = array();
 //zone noire
 $figs[0][0] = array();
 $figs[0][0][0] = 5;
 $figs[0][0][1] = 0;
 $figs[0][0][2] = 0;
 //zone bleue
 $figs[0][1] = array();
 $figs[0][1][1] = -1;
 $figs[0][1][2] = -1;
 $figs[0][2] = array();
 $figs[0][2][1] = 0;
 $figs[0][2][2] = -1;
 $figs[0][3] = array();
 $figs[0][3][1] = -2;
 $figs[0][3][2] = 0;
 $figs[0][4] = array();
 $figs[0][4][1] = -1;
 $figs[0][4][2] = 0;
 $figs[0][5] = array();
 $figs[0][5][1] = 1;
 $figs[0][5][2] = 0;
 $figs[0][6] = array();
 $figs[0][6][1] = -2;
 $figs[0][6][2] = 1;
 $figs[0][7] = array();
 $figs[0][7][1] = -1;
 $figs[0][7][2] = 1;
 $figs[0][8] = array();
 $figs[0][8][1] = 0;
 $figs[0][8][2] = 1;
 $figs[0][9] = array();
 $figs[0][9][1] = 1;
 $figs[0][9][2] = 1;
 $figs[0][10] = array();
 $figs[0][10][1] = -1;
 $figs[0][10][2] = 2;
 $figs[0][11] = array();
 $figs[0][11][1] = 0;
 $figs[0][11][2] = 2;
 //zone rouge
 $figs[0][12] = array();
 $figs[0][12][1] = -1;
 $figs[0][12][2] = -2;
 $figs[0][13] = array();
 $figs[0][13][1] = 0;
 $figs[0][13][2] = -2;
 $figs[0][14] = array();
 $figs[0][14][1] = 1;
 $figs[0][14][2] = -1;
 $figs[0][15] = array();
 $figs[0][15][1] = 2;
 $figs[0][15][2] = 0;
 $figs[0][16] = array();
 $figs[0][16][1] = 2;
 $figs[0][16][2] = 1;
 $figs[0][17] = array();
 $figs[0][17][1] = 1;
 $figs[0][17][2] = 2;
 $figs[0][18] = array();
 $figs[0][18][1] = 0;
 $figs[0][18][2] = 3;
 $figs[0][19] = array();
 $figs[0][19][0] = 3;
 $figs[0][19][1] = -1;
 $figs[0][19][2] = 3;
 $figs[0][20] = array();
 $figs[0][20][1] = -2;
 $figs[0][20][2] = 2;
 $figs[0][21] = array();
 $figs[0][21][1] = -3;
 $figs[0][21][2] = 1;
 $figs[0][22] = array();
 $figs[0][22][1] = -3;
 $figs[0][22][2] = 0;
 $figs[0][23] = array();
 $figs[0][23][1] = -2;
 $figs[0][23][2] = -1;
 //zone jaune
 $figs[0][24] = array();
 $figs[0][24][1] = -1;
 $figs[0][24][2] = -3;
 $figs[0][25] = array();
 $figs[0][25][1] = 0;
 $figs[0][25][2] = -3;
 $figs[0][26] = array();
 $figs[0][26][1] = 1;
 $figs[0][26][2] = -2;
 $figs[0][27] = array();
 $figs[0][27][1] = 2;
 $figs[0][27][2] = -1;
 $figs[0][28] = array();
 $figs[0][28][1] = 3;
 $figs[0][28][2] = 0;
 $figs[0][29] = array();
 $figs[0][29][1] = 3;
 $figs[0][29][2] = 1;
 $figs[0][30] = array();
 $figs[0][30][1] = 2;
 $figs[0][30][2] = 2;
 $figs[0][31] = array();
 $figs[0][31][1] = 1;
 $figs[0][31][2] = 3;
 $figs[0][32] = array();
 $figs[0][32][1] = 0;
 $figs[0][32][2] = 4;
 $figs[0][33] = array();
 $figs[0][33][1] = -1;
 $figs[0][33][2] = 4;
 $figs[0][34] = array();
 $figs[0][34][1] = -2;
 $figs[0][34][2] = 3;
 $figs[0][35] = array();
 $figs[0][35][1] = -3;
 $figs[0][35][2] = 2;
 $figs[0][36] = array();
 $figs[0][36][1] = -4;
 $figs[0][36][2] = 1;
 $figs[0][37] = array();
 $figs[0][37][1] = -4;
 $figs[0][37][2] = 0;
 $figs[0][38] = array();
 $figs[0][38][1] = -3;
 $figs[0][38][2] = -1;
 $figs[0][39] = array();
 $figs[0][39][1] = -2;
 $figs[0][39][2] = -2;
 //zone verte
 $figs[0][40] = array();
 $figs[0][40][1] = -1;
 $figs[0][40][2] = -4;
 $figs[0][41] = array();
 $figs[0][41][1] = 0;
 $figs[0][41][2] = -4;
 $figs[0][42] = array();
 $figs[0][42][1] = 1;
 $figs[0][42][2] = -3;
 $figs[0][43] = array();
 $figs[0][43][1] = 2;
 $figs[0][43][2] = -2;
 $figs[0][44] = array();
 $figs[0][44][1] = 3;
 $figs[0][44][2] = -1;
 $figs[0][45] = array();
 $figs[0][45][1] = 4;
 $figs[0][45][2] = 1;
 $figs[0][46] = array();
 $figs[0][46][1] = 4;
 $figs[0][46][2] = 1;
 $figs[0][47] = array();
 $figs[0][47][1] = 3;
 $figs[0][47][2] = 2;
 $figs[0][48] = array();
 $figs[0][48][1] = 2;
 $figs[0][48][2] = 3;
 $figs[0][49] = array();
 $figs[0][49][1] = 1;
 $figs[0][49][2] = 4;
 $figs[0][50] = array();
 $figs[0][50][1] = 0;
 $figs[0][50][2] = 5;
 $figs[0][51] = array();
 $figs[0][51][1] = -1;
 $figs[0][51][2] = 5;
 $figs[0][52] = array();
 $figs[0][52][1] = -2;
 $figs[0][52][2] = 4;
 $figs[0][53] = array();
 $figs[0][53][1] = -3;
 $figs[0][53][2] = 3;
 $figs[0][54] = array();
 $figs[0][54][1] = -4;
 $figs[0][54][2] = 2;
 $figs[0][55] = array();
 $figs[0][55][1] = -5;
 $figs[0][55][2] = 1;
 $figs[0][56] = array();
 $figs[0][56][1] = -5;
 $figs[0][56][2] = 0;
 $figs[0][57] = array();
 $figs[0][57][1] = -4;
 $figs[0][57][2] = -1;
 $figs[0][58] = array();
 $figs[0][58][1] = -3;
 $figs[0][58][2] = -2;
 $figs[0][59] = array();
 $figs[0][59][1] = -2;
 $figs[0][59][2] = -3;
 //DEV boucles pour gagner du temps
 $car4 = 0;
 while($car4 < 10) //zone bleue
 {
  $car4++;
  $figs[0][$car4][0] = 4;
 }
 $car3 = 11;
 while($car3 < 22) // zone rouge
 {
  $car3++;
  $figs[0][$car3][0] = 3;
 }
 $car2 = 23;
 while($car2 < 38) //zone jaune
 {
  $car2++;
  $figs[0][$car2][0] = 2;
 }
 $car1 = 39;
 while($car1 < 59) //zone verte
 {
  $car1++;
  $figs[0][$car1][0] = 1;
 }
 //SUITE DEV FINIR ZONES
 
 $ndf--;
 $sql1 = mysql_query("SELECT count(*) FROM map");
 $sql2 = mysql_result($sql1, 0, 0);
 $nbact = floor(($sql2 / 60) /1.3 );
 $curseur = 0;
 $arid = array();
 $caid = -1;
 while($nbact > $curseur)
 {
  $rdf = rand(0, $ndf);
  $sql3 = mysql_query("SELECT x, y FROM meteo ORDER BY rand() LIMIT 1");
  $sql4 = mysql_fetch_array($sql3);
  $c2 = -1;
  $rtemps = rand(0, 3);
  if($rtemps == 0) { $temps = 'brouillard'; }
  if($rtemps == 1) { $temps = 'neige'; }
  if($rtemps == 2) { $temps = 'pluie'; }
  if($rtemps == 3) { $temps = 'pluie'; }
  while($c2 < 59)
  {
   $c2++;
   $xf = $sql4['x'] + $figs[$rdf][$c2][1];
   $yf = $sql4['y'] + $figs[$rdf][$c2][2];
   mysql_query("UPDATE meteo SET temps = '".$temps."', level = '".$figs[$rdf][$c2][0]."' WHERE y = '".$yf."' AND x = '".$xf."'");
   $asql1 = mysql_query("SELECT id FROM meteo WHERE y = '".$yf."' AND x = '".$xf."'");
   $asql2 = mysql_fetch_array($asql1);
   $caid++;
   $arid[$caid] = $asql2['id'];
  }
  $curseur++;
 }
 $query = "UPDATE meteo SET temps = 'beau', level = '0' WHERE id NOT IN (".implode(",", $arid).")";
 mysql_query($query);
 mysql_query("UPDATE meteo SET temps = 'beau', level = '0' WHERE temps = 'null'");
}
A+ et bon surf!!!!

Invité
Invité n'ayant pas de compte PHPfrance

27 avr. 2007, 19:49

Pas si vite l'ami, y'en a une dernière version plus affinée:
- moins de variables
- moins de requêtes
<?php 
function meteo ()
{
 $ndf = 1; //nombre de figures rentrées en array
 $figs = array();
 //syntaxe level x y
 //le rond
 $figs[0] = array();
 //zone noire
 $figs[0][0] = array();
 $figs[0][0][0] = 5;
 $figs[0][0][1] = 0;
 $figs[0][0][2] = 0;
 //zone bleue
 $figs[0][1] = array();
 $figs[0][1][1] = -1;
 $figs[0][1][2] = -1;
 $figs[0][2] = array();
 $figs[0][2][1] = 0;
 $figs[0][2][2] = -1;
 $figs[0][3] = array();
 $figs[0][3][1] = -2;
 $figs[0][3][2] = 0;
 $figs[0][4] = array();
 $figs[0][4][1] = -1;
 $figs[0][4][2] = 0;
 $figs[0][5] = array();
 $figs[0][5][1] = 1;
 $figs[0][5][2] = 0;
 $figs[0][6] = array();
 $figs[0][6][1] = -2;
 $figs[0][6][2] = 1;
 $figs[0][7] = array();
 $figs[0][7][1] = -1;
 $figs[0][7][2] = 1;
 $figs[0][8] = array();
 $figs[0][8][1] = 0;
 $figs[0][8][2] = 1;
 $figs[0][9] = array();
 $figs[0][9][1] = 1;
 $figs[0][9][2] = 1;
 $figs[0][10] = array();
 $figs[0][10][1] = -1;
 $figs[0][10][2] = 2;
 $figs[0][11] = array();
 $figs[0][11][1] = 0;
 $figs[0][11][2] = 2;
 //zone rouge
 $figs[0][12] = array();
 $figs[0][12][1] = -1;
 $figs[0][12][2] = -2;
 $figs[0][13] = array();
 $figs[0][13][1] = 0;
 $figs[0][13][2] = -2;
 $figs[0][14] = array();
 $figs[0][14][1] = 1;
 $figs[0][14][2] = -1;
 $figs[0][15] = array();
 $figs[0][15][1] = 2;
 $figs[0][15][2] = 0;
 $figs[0][16] = array();
 $figs[0][16][1] = 2;
 $figs[0][16][2] = 1;
 $figs[0][17] = array();
 $figs[0][17][1] = 1;
 $figs[0][17][2] = 2;
 $figs[0][18] = array();
 $figs[0][18][1] = 0;
 $figs[0][18][2] = 3;
 $figs[0][19] = array();
 $figs[0][19][0] = 3;
 $figs[0][19][1] = -1;
 $figs[0][19][2] = 3;
 $figs[0][20] = array();
 $figs[0][20][1] = -2;
 $figs[0][20][2] = 2;
 $figs[0][21] = array();
 $figs[0][21][1] = -3;
 $figs[0][21][2] = 1;
 $figs[0][22] = array();
 $figs[0][22][1] = -3;
 $figs[0][22][2] = 0;
 $figs[0][23] = array();
 $figs[0][23][1] = -2;
 $figs[0][23][2] = -1;
 //zone jaune
 $figs[0][24] = array();
 $figs[0][24][1] = -1;
 $figs[0][24][2] = -3;
 $figs[0][25] = array();
 $figs[0][25][1] = 0;
 $figs[0][25][2] = -3;
 $figs[0][26] = array();
 $figs[0][26][1] = 1;
 $figs[0][26][2] = -2;
 $figs[0][27] = array();
 $figs[0][27][1] = 2;
 $figs[0][27][2] = -1;
 $figs[0][28] = array();
 $figs[0][28][1] = 3;
 $figs[0][28][2] = 0;
 $figs[0][29] = array();
 $figs[0][29][1] = 3;
 $figs[0][29][2] = 1;
 $figs[0][30] = array();
 $figs[0][30][1] = 2;
 $figs[0][30][2] = 2;
 $figs[0][31] = array();
 $figs[0][31][1] = 1;
 $figs[0][31][2] = 3;
 $figs[0][32] = array();
 $figs[0][32][1] = 0;
 $figs[0][32][2] = 4;
 $figs[0][33] = array();
 $figs[0][33][1] = -1;
 $figs[0][33][2] = 4;
 $figs[0][34] = array();
 $figs[0][34][1] = -2;
 $figs[0][34][2] = 3;
 $figs[0][35] = array();
 $figs[0][35][1] = -3;
 $figs[0][35][2] = 2;
 $figs[0][36] = array();
 $figs[0][36][1] = -4;
 $figs[0][36][2] = 1;
 $figs[0][37] = array();
 $figs[0][37][1] = -4;
 $figs[0][37][2] = 0;
 $figs[0][38] = array();
 $figs[0][38][1] = -3;
 $figs[0][38][2] = -1;
 $figs[0][39] = array();
 $figs[0][39][1] = -2;
 $figs[0][39][2] = -2;
 //zone verte
 $figs[0][40] = array();
 $figs[0][40][1] = -1;
 $figs[0][40][2] = -4;
 $figs[0][41] = array();
 $figs[0][41][1] = 0;
 $figs[0][41][2] = -4;
 $figs[0][42] = array();
 $figs[0][42][1] = 1;
 $figs[0][42][2] = -3;
 $figs[0][43] = array();
 $figs[0][43][1] = 2;
 $figs[0][43][2] = -2;
 $figs[0][44] = array();
 $figs[0][44][1] = 3;
 $figs[0][44][2] = -1;
 $figs[0][45] = array();
 $figs[0][45][1] = 4;
 $figs[0][45][2] = 1;
 $figs[0][46] = array();
 $figs[0][46][1] = 4;
 $figs[0][46][2] = 1;
 $figs[0][47] = array();
 $figs[0][47][1] = 3;
 $figs[0][47][2] = 2;
 $figs[0][48] = array();
 $figs[0][48][1] = 2;
 $figs[0][48][2] = 3;
 $figs[0][49] = array();
 $figs[0][49][1] = 1;
 $figs[0][49][2] = 4;
 $figs[0][50] = array();
 $figs[0][50][1] = 0;
 $figs[0][50][2] = 5;
 $figs[0][51] = array();
 $figs[0][51][1] = -1;
 $figs[0][51][2] = 5;
 $figs[0][52] = array();
 $figs[0][52][1] = -2;
 $figs[0][52][2] = 4;
 $figs[0][53] = array();
 $figs[0][53][1] = -3;
 $figs[0][53][2] = 3;
 $figs[0][54] = array();
 $figs[0][54][1] = -4;
 $figs[0][54][2] = 2;
 $figs[0][55] = array();
 $figs[0][55][1] = -5;
 $figs[0][55][2] = 1;
 $figs[0][56] = array();
 $figs[0][56][1] = -5;
 $figs[0][56][2] = 0;
 $figs[0][57] = array();
 $figs[0][57][1] = -4;
 $figs[0][57][2] = -1;
 $figs[0][58] = array();
 $figs[0][58][1] = -3;
 $figs[0][58][2] = -2;
 $figs[0][59] = array();
 $figs[0][59][1] = -2;
 $figs[0][59][2] = -3;
 //DEV boucles pour gagner du temps
 for ($car = 0; $car < 10; $car++) //zone bleue
 {
  $figs[0][$car][0] = 4;
 }
 for ($car = 11; $car < 22; $car++) // zone rouge
 {
  $figs[0][$car][0] = 3;
 }
 for ($car = 23; $car < 38; $car++)//zone jaune
 {
   $figs[0][$car][0] = 2;
 }
 for ($car = 39; $car < 58; $car++)//zone verte
 {
  $figs[0][$car][0] = 1;
 }
 //SUITE DEV FINIR ZONES
 $sql = mysql_query("SELECT count(*) FROM map");
 $result = mysql_result($sql, 0, 0);
 $nbact = $result?floor(($result / 60) /1.3 ):0;
 $arid = array();
 for ($curseur = 0; $curseur<$nbact; $curseur++)
 {
  $sql = mysql_query("SELECT x, y FROM meteo ORDER BY rand() LIMIT 1"); //tirage d'une météo
  $result = mysql_fetch_array($sql);
  switch(rand(0, 3)){
  	case 1: $temps = 'neige'; break;
  	case 2: $temps = 'pluie'; break;
  	case 3: $temps = 'pluie'; break;
  	default: $temps = 'brouillard'; break; //0
  }
 $rdf = rand(0, $ndf-1); //tirage d'une figure
 for($c=0; $c < 59; $c++)
  {
   $xf = $result['x'] + $figs[$rdf][$c][1];
   $yf = $result['y'] + $figs[$rdf][$c][2];
   mysql_query("UPDATE meteo SET temps = '".$temps."', level = '".$figs[$rdf][$c][0]."' WHERE y = '".$yf."' AND x = '".$xf."'");
   $arid["$yf-$xf"] = "'$yf-$xf'"; //mémorise les xy traités et évite les doublons éventuels
  }
 }
 mysql_query("UPDATE meteo SET temps = 'beau', level = '0' WHERE Concat(y,'-',x) NOT IN (".implode(",", $arid).")");
 mysql_query("UPDATE meteo SET temps = 'beau', level = '0' WHERE temps = 'null'");
}
?>
:lol:

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

27 avr. 2007, 19:56

oops, j'ai oublié de me connecter. :wink:
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Mammouth du PHP | 555 Messages

27 avr. 2007, 21:38

Re,
On a encore gagné une seconde en moyenne ce qui ramène le temps moyen d'éxécution à 6.9s bravo!
Cependant je n'aime pas utiliser ce que je ne comprends pas alors il va falloir que tu m'expliques le concat et aussi pourquoi t'as fait ca dans le tableau $arid["$yf-$xf"] ??? :wink:
Merci!
A+ et bon surf!!!!

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

27 avr. 2007, 23:28

Bien sûr, j'attendais simplement ta réponse quant à l'exécution du code.
Bon alors,
  • 1. les for ont remplacé les while pour ne pas gérer l'incrémentation

    2. les variables $sql et $result sont utilisées et réutilisées pour toutes les requêtes exécutées car non imbriquées

    3. un switch remplace les if en série, car il s'agit de vérifier les valeurs d'une même variable $temps

    4. pour éviter de récupèrer l'id par un select par y et x, on remarque que ces derniers (yx) sont aussi uniques que l'id, du coups ayant y et x on n'a plus besoin de l'id pour avoir un index de recherche pour le Where de l'Update attendu plus tard.

    la forme $arid["$yf-$xf"] = "'$yf-$xf'"; mémorise y et x traité dans le tableau $arid. l'utilisation de la forme '$yf-$xf' dans l'index du tableau permet de ne pas affecter au tableau deux même yx tirés au hazard.
    C'est ce qu'on appelle un tableau associatif dont l'index est un texte aulieu d'un indice numérique.

    Par exemple:

    $t[0] est un index unique car on ne peut pas trouver un deuxième index 0 dans $t
    De même, $t["toto"] est un index unique car si on ne doit pas retrouver un autre index "toto" dans le tableau.

    Finalement la forme '$yf-$xf' est un choix pour mémoriser y et x dans une forme facilement extractable (ça peut être une autre forme) c'est pourquoi on a utilisé un concat(y, '-', x) au niveau de la requête Update pour se correspondre au yx mémorisés dans le tableau $arid.
    Je rappelle la requête Update qui retrouve ses indexes recherchés dans le tableau $arid ainsi contruit:
     "UPDATE meteo SET temps = 'beau', level = '0' WHERE Concat(y,'-',x) NOT IN (".implode(",", $arid).")"
    Concat() ici est la fonction Sql qui concaténe les mots y,- et x, contruit un couple 'y-x' de la table meteo qui est évalué dans le Where par NOT IN dans la liste des 'y-x' "implodée" du le tableau $arid
Et voilà :wink:
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Mammouth du PHP | 555 Messages

28 avr. 2007, 11:28

Ok merci beaucoup j'ai tout compris! :wink:
Je pense qu'on est arrivé au bout de l'optimisation non?
Merci!
A+ et bon surf!!!!

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

28 avr. 2007, 13:53

Non, je croix que non, une dernière chose:
Le dernier Update m'intrigue

Code : Tout sélectionner

mysql_query("UPDATE meteo SET temps = 'beau', level = '0' WHERE temps = 'null'");
Je pense que si tu déclares au niveau de la table "meteo" des valeurs par défaut: "beau" pour temps et "0" pour level, tu n'auras pas à faire cet Update. A moins que tes programmes mettent des nuls explicites dans temps.

Cette fois je me tais.


:wink:
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Mammouth du PHP | 555 Messages

28 avr. 2007, 14:51

Re,
Effectivement c'était le truc que j'avais mis par défaut dans le script de construction de la carte avant de m'être penché sur la fonction météo.
J'ai supprimé cette ligne et j'ai mis à jour de l'autre côté.
Voila cette fois on a fini non?
En tout cas merci beaucoup de ton aide! J'aurai appris un truc important les conctats! et pour le système de la carte ils vont pas mal me servir je pense...
Merci!
A+ et bon surf!!!!

Mammouth du PHP | 555 Messages

30 avr. 2007, 17:54

Je relance la question de départ qui était de lancer un script tous les jours à 4h sans cron? Puisque webcron ne marche pas j'en suis sûr (les tests marchent mais le fonctionnement régulier non) il va falloir trouver une autre solution...
Merci à tous de votre aide!
A+ et bon surf!!!!

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

30 avr. 2007, 18:36

Pourtant webcron est plutôt éprouvé, et à part quelques «évènements» il fonctionne. Tu es sûr de ton coup là ? Tu devrais leur écrire à ce moment-là pour demander ce qui peut bien se passer.

Sinon faire du cron sans cron, ça n'est pas possible ^^ il faudra bien qu'il y a un cron quelque part, c'est-à-dire une machine allumée en permanence qui toutes les X heures effectue l'action que tu veux. Que ce soit sur ton serveur ou sur un autre (webcron) ou même avec ton PC de salon, mais c'est soit ça, soit ton idée de départ.

Mammouth du PHP | 555 Messages

30 avr. 2007, 20:43

Re,
Bah pourtant j'ai pas l'impression que ça marche, écoute je vais ajouter l'envoit d'un mail à moi même à cette fonction et on verra bien si cette nuit je reçois quelque chose...
Je vous tiens au courant!!
A+ et bon surf!!!!

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

30 avr. 2007, 22:56

Plus simple et plus fiable qu'un envoi de mail :
$fp = fopen('exec.log', 'a+');
fputs($fp, date('d/m/Y - H:i:s')."\n");
fclose($fp);

Mammouth du PHP | 555 Messages

30 avr. 2007, 23:02

Re,
Désolé de poser des questions qui pourront paraitre stupides mais ca fait quoi exactement ça?
Merci!
A+ et bon surf!!!!

Mammouth du PHP | 991 Messages

30 avr. 2007, 23:09

ben sa creer fichier qui recensera l'activites de ton script parce que quelque que fois avec les mails ... le facteurs peut oublier de les poster alors q'uavec le fichier de log c'est immédiat et précis et ca te permet de savoir ce qui se passe sur ton script en le mettant au debut tu sait quand il a commencer et a al fin quand il a fini et enfin il te permet de garder une trace sur plusieur jour
DevOps, Symfony4, Hoa