Exec() dans un fichier batch [résolu] - PHP - Programmation
Marsh Posté le 16-02-2011 à 13:50:46
tu vas faire comment pour planifier la tache sur du mutualisé ?
Marsh Posté le 16-02-2011 à 14:08:58
OVH propose un CRON pour ses offres mutualisées
Marsh Posté le 16-02-2011 à 14:30:33
ils font les choses bien chez OVH
hum pourquoi tu ne fais pas tes requetes SQL directement dans ton fichier php ? je pîge pas pourquoi tu veux faire ça par tranches.
dans ton cron tu executes le fichier php la nuit, pis voila.
pour les chemins ué perso je mets des chemins absolus au cas ou les path ne soient pas dans les environnements.
Marsh Posté le 16-02-2011 à 14:37:19
pour chaque enregistrement résultant de ma requete, j'ai trois requetes SQL à passer (mises à jour de profils, etc..)
donc quand je me retrouverai avec 2000 lignes à traiter, j'aurai 6000 requetes à passer. Avec un timeout de 30 se j'aurais jamais le temps de tout traiter en une fois.
D'ou l'idée d'executer plusieurs fois le script en meme temps.
Marsh Posté le 16-02-2011 à 16:11:33
max_execution_time : This sets the maximum time in seconds a script is allowed to run before it is terminated by the parser. This helps prevent poorly written scripts from tying up the server. The default setting is 30. When running PHP from the command line the default setting is 0.
donc si t'appelles php en lui envoyant un script ça doit etre bon, pas de timeout.
Marsh Posté le 16-02-2011 à 17:24:22
ce serait donc si simple ?
je vais tester et je te dis ce qu'il en est.
Merci en tous cas.
Marsh Posté le 16-02-2011 à 17:41:56
Code :
|
n'execute pas le script (censé juste mettre à jour ma BDD)
cron.php exécuté depuis mon navigateur, oui.
j'y comprends rien.
Marsh Posté le 16-02-2011 à 17:44:59
loule )) non fais pas comme ça, php avec un exec de php sur un php autant faire un require
il est proposé comment le service cron d'OVH ? comment il s'utilise ?
tu fais un btach avec /.../php -f fichier.php
je crois que pour passer un fichier à php c l'option -f (ou -e je c plus je confonds avec perl)
Marsh Posté le 16-02-2011 à 17:48:19
http://guides.ovh.com/MutualiseCron
si c juste ça (screen du bas) tu mets juste ton cron.php dans "script à exécuter"
ou bien
http://www.ovh.com/fr/hebergement_ [...] rontab.xml
Marsh Posté le 16-02-2011 à 17:57:08
dans ce cas-là, je ne serai pas concerné par le temps d'exécution du script, je viens de penser à ça ?
je vais faire le test, 1000 mercis.
Marsh Posté le 16-02-2011 à 17:59:50
non tu seras pas concerné par le timeout à prioris c'est leur cron qui appelra ton fichier avec php (spour ça qu'il y a un menu déroulant qui demande le type du fichier que tu osuhaites). Enfin, je suppose
essaye un
sleep(50);
echo "plop";
Marsh Posté le 16-02-2011 à 22:42:01
je confirme : d'après les logs de test, le script cron.php est bien lancé en ligne de commande automatisée.
C'est tout bon.
Marsh Posté le 16-02-2011 à 11:31:44
bonjour à tous,
j'ai besoin de traiter par batch de nuit via un fichier PHP des enregistrements retournés par une requete SQL.
le souci est qu'à terme ce sont plus de quelques centaines d'enregistrements qui doivent etre traités par ce batch.
je sui en mutu, donc pas d'accès au serveur en SSH, donc j'ai pensé à faire un truc du genre pour pouvoir éxécuté mon script sur l'ensemble des enregistrements retournés :
- SELECT pour extraire les enregistrements concernés
- ensuite je fais une boucle pour faire une commande EXEC qu va exectuter le script de traitement par tranche.
comment dois-je écrire mon script PHP ?
j'avais pensé à un truc du genre (lorsque ma requete me retourne 2000 lignes à traiter par lot de 10, par ex) :
mais je ne suis pas sûr de la ligne 2. Chemin absolu à indiquer ?
Merci de votre aide.
Message édité par sebnutt le 17-02-2011 à 09:46:23