Procédure PHP à exécuter toutes les minutes

ViPHP
ViPHP | 928 Messages

29 août 2008, 02:36

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 :)

ViPHP
ViPHP | 5924 Messages

29 août 2008, 03:08

Tu peux même pas l'exécuter par webcron ?

ViPHP
ViPHP | 928 Messages

29 août 2008, 03:59

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.

Mammouth du PHP | 19672 Messages

29 août 2008, 08:03

:idea: Et pourquoi pas une fonction JavaScript setTimeOut qui appellerait toutes les trente secondes via AJAX tes fonctions CUrl coté serveur ? :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
ViPHP | 5924 Messages

29 août 2008, 08:52

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 ?

ViPHP
ViPHP | 5924 Messages

29 août 2008, 09:07

Sinon, si ca t'intéresse, sur mon 1and1 j'ai accès à un cron…

Eléphant du PHP | 79 Messages

29 août 2008, 12:09

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

Eléphanteau du PHP | 36 Messages

01 sept. 2008, 18:09

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.
Julien Pauli - Formateur pôle PHP ZendFramework chez Anaska
Contributeur au projet Zend Framework
Ma page de tutoriaux, mon blog