Donc, personnellement, je ne pense pas que utiliser php pour ces taches soit une bonne idée.
Bien que le shell unix puisse sembler assez ... obscure, il est le plus adapté pour ce genre de tache, et je te rassure, tu peux certainement te passer d'utiliser le quart des syntaxes barbares que tu as pu croiser dans les différents tutoriels sur le net !
En effet, tu disposes d'outils puissants et rapides car écrit en C pour faire toutes ces taches.
Par exemple:
_ pour "parser" tes enregistrements depuis tes fichiers textes, tu as les outils awk, grep, sed, cut, tail, head qui sont voués à ces taches.
_ pour retravailler tes images tu as convert issu de la suite ImageMagick qui excellera.
_ mysql pour faire des requêtes mysql, l'exemple typique serait ici de "générer" un fichier contenant toutes tes requêtes puis de le faire executer par mysql à coup de mysql < le fichier.
La souplesse de Linux n'exclut pas non plus une utilisation conjointe de php, le shell scripting, Perl/Python/...
Maintenant, pour répondre concrétement à tes questions:
# Je sais bien que l'on peux augmenter le timeout de scripts Php pour empêcher qu'ils tombent en rade. Mais malgré la stabilité de Php5 est-ce que c'est le bien langage le plus adapté pour ce genre de tâche ?
Le timeout PHP n'a d'incidence que lorsque tu lances un script php via Apache il me semble. Or ce genre d'opération n'a pas à être lancé via apache, mais plutot par un appel php -f ton_script.php
# Les crons, on peut les lancer à des heures précises. Mais est-ce qu'on pourrait pas mieux organiser une liste séquentielle de tâches à effectuer ? Ce serait plus rassurant que de fixer arbitrairement des heures éloignées en priant pour que deux scripts ne fiissent pas par se marcher sur les pieds.
Sisi, c'est d'ailleurs la base du shell Unix !
Soit trois script php : script1.php, script2.php et script3.php renvoyant 0 en cas de succés.
Si tu ajoutes une crontab de cette forme:
Alors si script1.php échoue et renvoie une valeur différente de 0, le reste de la chaine ne sera pas executé.
La syntaxe command1 && command2 équivaut à dire je lance command2 si et seulement si command1 s'est terminé avec succés.
J'espère avoir éclairé un peu ta lanterne, si t'as d'autres questions ou besoin de précisions, hesite pas !
# Mon avis sur la question.
Posté par LaBienPensanceMaTuer . En réponse au message Cron Apache, gros traitements Php et stabilité. Évalué à 5.
Bien que le shell unix puisse sembler assez ... obscure, il est le plus adapté pour ce genre de tache, et je te rassure, tu peux certainement te passer d'utiliser le quart des syntaxes barbares que tu as pu croiser dans les différents tutoriels sur le net !
En effet, tu disposes d'outils puissants et rapides car écrit en C pour faire toutes ces taches.
Par exemple:
_ pour "parser" tes enregistrements depuis tes fichiers textes, tu as les outils awk, grep, sed, cut, tail, head qui sont voués à ces taches.
_ pour retravailler tes images tu as convert issu de la suite ImageMagick qui excellera.
_ mysql pour faire des requêtes mysql, l'exemple typique serait ici de "générer" un fichier contenant toutes tes requêtes puis de le faire executer par mysql à coup de mysql < le fichier.
La souplesse de Linux n'exclut pas non plus une utilisation conjointe de php, le shell scripting, Perl/Python/...
Maintenant, pour répondre concrétement à tes questions:
Le timeout PHP n'a d'incidence que lorsque tu lances un script php via Apache il me semble. Or ce genre d'opération n'a pas à être lancé via apache, mais plutot par un appel php -f ton_script.php
Sisi, c'est d'ailleurs la base du shell Unix !
Soit trois script php : script1.php, script2.php et script3.php renvoyant 0 en cas de succés.
Si tu ajoutes une crontab de cette forme:
10 4 * * * php -f /chemin/script1.php && php -f /chemin/script2.php && php -f /chemin/script3.php
Alors si script1.php échoue et renvoie une valeur différente de 0, le reste de la chaine ne sera pas executé.
La syntaxe command1 && command2 équivaut à dire je lance command2 si et seulement si command1 s'est terminé avec succés.
J'espère avoir éclairé un peu ta lanterne, si t'as d'autres questions ou besoin de précisions, hesite pas !