(02-12-2008, 04:40 PM)rygnes a écrit : Une simulation de cron avec php consommera davantage de ressources serveur par contre, ce ne sera pas un code très optimisé.Peut etre mais à mon sens pas tant que çà
Voici un exemple, si on choisit une précision à l'heure 3600 on peut lancer l'action à un temps très régulier. Et avec la fonction sleep() la priorité va être passé au aux autre processus
Evidement le script sera toujours en mèmoire , il peut donc être intéréssant d'utiliser les unset(); pour prendre le moins de place possible.
NB: si çà inquiete tant, un benchmark peut etre fait afin de choisir en sachant de combien on perd...
Code PHP :
<?php
set_time_limit(0);
function action1() {
//L'action à éffectuer
}
//On définit le tableau des actions à faire à un timestamp donné
$actions=array(
array(timestamp,"action1"),
array(timestamp2,array("objet1","action2"))
);
//Précision du déclenchement plus c'est grand moins çà utilise de ressource
$precision=60;
//On boucle à l'infini avec une attente de $precision secondes entre chaque itération
while(sleep($precision))
foreach($actions as $action)
if (time()>=$action[0]) {
//On enlève l'action du tableau des actions
//Rien n'empéche l'action de se remettre dans le tableau
//avec un nouveau timestamp
$actions-=$action;
call_user_func($action[1]);
}
Sinon pour Ragol j'ai fait comme Keke, à noter qu'il est possible de faire executer des actions de manière transparente aprés un header("location:...") si la maj n'a pas besoin d'etre faite pour le jouer en question évidement. Dans ce cas on peut même utiliser sleep pour accélérer encore plus l'arrivé de la page...