Page 1 sur 1

Procédure PHP à exécuter toutes les minutes

Posté : 29 août 2008, 02:36
par Genova
Salut,
je suis en train de faire un script PHP avec la librairie CURL afin de me connecter sur un jeu pour y récupérer une série d'informations. J'ai besoin que mon script s'exécute très fréquemment (par exemple toutes les minutes, voire toutes les 30 secondes). Ne disposant pas de cron j'aimerai savoir si vous avez une idée pour le faire tourner ? Est il envisageable que le script tourne indéfiniment du genre :

Code : Tout sélectionner

<?php while (true) { mafonction_qui_fait_du_curl(); sleep(30); } ?>
sans que ça fasse péter la mémoire ?

Merci :)

Posté : 29 août 2008, 03:08
par Sékiltoyai
Tu peux même pas l'exécuter par webcron ?

Posté : 29 août 2008, 03:59
par Genova
Webcron ne s'active que toutes les heures, au pire mon script doit s'activer toutes les minutes :) Puisque tu connais Sékiltoyai, il s'agit d'une procédure pour récupérer la liste des RC d'une alliance dans Travian. Vu que cette list est très dynamique, il faut donc que le script passe fréquemment.

Posté : 29 août 2008, 08:03
par Cyrano
:idea: Et pourquoi pas une fonction JavaScript setTimeOut qui appellerait toutes les trente secondes via AJAX tes fonctions CUrl coté serveur ? :-k

Posté : 29 août 2008, 08:52
par Sékiltoyai
Cyrano, dans quel navigateur tu foutrais ca ? …

Sinon, tu pourrais pas faire de ce script un démon qui va lancer ton vrai script. C'est à dire faire un exec() sur ton script curl à partir du script que tu lanceras en fond. Si tu ne fais qu'exécuter une autre commande dans ton script, théoriquement ca ne devrait pas monter niveau ressources…

Et comment tu le lancerais ton script ?

Posté : 29 août 2008, 09:07
par Sékiltoyai
Sinon, si ca t'intéresse, sur mon 1and1 j'ai accès à un cron…

Posté : 29 août 2008, 12:09
par Alkann
Et par les taches planifié d'une machine sous Windows... J'avais utilisé cela pour une application. Seule contrainte, avoir la machine allumée H24

Posté : 01 sept. 2008, 18:09
par doctorrock
Un while (true) n'est pas génant à partir du moment ou ce qui est dans la boucle n'avale pas la mémoire.

PHP n'est pas un fantôme qui va consommer de la mémoire comme ça, parce qu'il en a envie, il execute juste ce qu'on lui demande :wink:

Sinon tu peux t'amuser à faire du traitement parallèle avec pcntl_fork(), attention en module apache, ca peut faire mal, je te conseille vivement de l'utiliser en CLI.