-
Cron multi thread ?
bonjour,
Je compte utiliser cron pour aller régulièrement sur un page de mon site.
Exemple de commande:
wget q
http://patrick.all2all.org/phpcron.php 2>&1
Le probleme est que ma page s'execute.. et met pret de 30minutes (beaucoup de traitement) (ou sarrete immediatement).
Soucis mon cron est réglé toutes les 15minutes.
En dehors du probleme d'augmenter sans cesse le traitement chose que je gere dejà.
J aimerais avoir la garantie que cron créer un nouveau thread a chaque fois.
Et ne va pas interrompre mon premier traitement pour executer le second.
-
le principe est mauvais dans le concept déjà.
si ton php doit tourner de façon permanente quel que soit le temps de traitement de chaque occurrence indépendamment il faut pas utiliser crontab mais inittab en respawn.
si le besoin est de paralléliser des taches, il faut passer par un script
qui contrôle le nombre de traitement déjà en cours et si > à 10 alors sleep et rerun de lui même sinon poursuivre. et bien sur au bout de 100 rerun abandon de l'occurrence courante. (par exemple)
sans cette précaution tôt ou tard tu va avoir un plantage majeur...
-
Bonjour frp31,
Merci pour ta remarque pertinente. Je ne connaissais pas les inittab.
Toutefois en regardant sur le net, j'ai pu comprendre que c'était pour des threads permanent or celà n'est pas mon cas. Pourrais tu confirmer que celà repond à mes besoins:
J'ai juste un systeme de producteur, consommateur, avec une queue de 10.
Mon cron est le consommateur est met 30 minutes à consommer.
Ce traitement étant long, je comptais lancer le cron toute les 15 minutes, ainsi lancer des thread paralèlles et reduit la queue en cas d'affluence.
Si la queue est vide le cron s'arrete tout de suite, donc de soucis.
Ma queue est en faite virtuel, car elle est géré par un systeme que j'ai fais qui limite obligatoire le nombre de thread parallèle à 10.
Ne connaissant pas trop trop, le cron. Je voulais savoir si ma théorie était viable ?
Actuellement tout fonctionne en local, mais le lance manuellement les pages.
Je voulais m'assure de pas avoir de mauvaise surprise avec cron.