Comment exécuter des tâches journalières - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : Comment exécuter des tâches journalières (/showthread.php?tid=3368) |
RE: Traitement nocture à passer - Zamentur - 02-12-2008 (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 :
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... RE: Traitement nocture à passer - rygnes - 02-12-2008 J'ai sans doute des aprioris mais je n'aime pas beaucoup les boucles infinies. Il y a un petit souci avec ce modèle, car si ton serveur plante, ton script php s'arrête par la même occasion. Il faudra relancer ton script manuellement. Cela peut paraître insignifiant mais si tu oublis une fois... Idem lors d'un reboot. RE: Traitement nocture à passer - Zamentur - 02-12-2008 (02-12-2008, 05:23 PM)rygnes a écrit : J'ai sans doute des aprioris mais je n'aime pas beaucoup les boucles infinies. Ben rien empeche au lancement de toute les pages du jeu, de vérifier si le script est en route... C'est d'ailleurs valable aussi avec la méthode cron. Concernant la boucle infinis, libre à toi de mettre un garde fou pour l'arréter. Par exemple avec une variable dans un fichier. Enfin bref l'idée ici est de présenter une solution alternative au cron. Personnelement j'utilise une classe qui gère les évenements (comme le temps) et que j'ai fait de mes petites mains. Et je sais que j'utiliserais jamais le cron surtout pas le cron en ligne. RE: Traitement nocture à passer - Argorate - 02-12-2008 Le mieux étant encore de ne pas tout faire en une fois. Compter sur un cron, c'est compté sur qq chose d'extérieur, je ne trouve pas ça très malin ni optimisé. Il vaut mieux mettre à jour uniquement un joueur allant sur la page jeu (si son tour est passé)... RE: Traitement nocture à passer - rygnes - 02-12-2008 A partir du moment où le cron est un processus interne, il n'est pas extérieur (a moins que tu parlais uniquement du crontab en ligne ?). Tout faire en une fois est une erreur, mais il est tout à fait envisageable de dissocier tes tâches en plusieurs Crons. Il est aussi possible d'utiliser des vues. RE: Traitement nocture à passer - Argorate - 04-12-2008 Oui je parlé de se du net, car si tu me fait reference a se que j'ai malheureusement cru lire : boucle infini -> cron "interne", laisse moi rire... Rien de mieux pour flingué son serveur et faire des choses totalement inutile... Après c'est vous qui voyait RE: Traitement nocture à passer - Sephi-Chan - 04-12-2008 Si on est sur un serveur dédié, il faut utiliser les crontabs. Sephi-Chan RE: Traitement nocture à passer - Argorate - 04-12-2008 Cela consiste en quoi les crontabs exactement? Pour moi un cron c'est un "mec"(pas vraiment un humain), qui vient a heure fixe (généralement programmable) sur un page définit, exécutant ainsi le code de cette dernière. Chose qui me déplait entièrement. RE: Traitement nocture à passer - Sephi-Chan - 04-12-2008 Le crontab est un gestionnaire qui lance des tâches définies (exécution d'un script, par exemple) selon des intervalles entièrement personnalisables (ou même des tâches unique à telle date). Dans le cas d'un serveur dédié, tu peux empêcher l'accès à la page par HTTP en protégeant ton fichier (par htaccess, par exemple), cela n'empêche pas la machine d'exécuter les scripts. C'est donc une solution fiable, sécurisée et performante. Sephi-Chan RE: Traitement nocture à passer - rygnes - 04-12-2008 Sephi-Chan a écrit :Dans le cas d'un serveur dédié, tu peux empêcher l'accès à la page par HTTP en protégeant ton fichier (par htaccess, par exemple), cela n'empêche pas la machine d'exécuter les scripts. C'est donc une solution fiable, sécurisée et performante. Dans le cas d'un serveur dédié, tu vas plutôt exécuter des scripts qui ne sont pas accessibles en ligne (donc pas dans les répertoires sur lesquels pointe Apache). Cela évite de s'amuser à rajouter des protections. Autrement, certaines offres mutualisées permettent aussi d'utiliser un crontab et une protection par htaccess (c'est le cas pour une bonne partie des hébergements mutualisés chez OVH). |