Salut tout le monde,

Je suis actuellement entrain de développer un "script" qui s'éxécuterai de manière "infini" (jusqu'à ce que tout les games du patch courant soit analyser) sur mon serveur.
Ce script me servirai à recueillir des données statistiques sur League Of Legends via leurs API que je stockerai dans une BDD.

Mais mon problème est de savoir quelle techno répondrait le mieu à mon besoin j'aurais penser à node.js,
actuellement mon API tourne sous PHP mais je n'aime pas le fait de devoir laisser le navigateur ouvert pour que mon script s'éxécute.

Ma question est donc que me conseilleriez-vous ?

Merci d'avance.

6 réponses


tleb
Réponse acceptée

Sinon, tu mets que set_time_limit(0) et tu lances php crawler.php dans screen ou tmux. Tu pourras le stopper quand tu voudras.

NodeJS ne te sera pas plus utile que PHP. Tu as juste besoin d'installer un cron (voir avec ton hébergement les possibilités) qui exécute ton script PHP toutes les x secondes/minutes/heures. Une autre solution est de faire une boucle infinie avec un sleep mais ce n'est pas top. Tu peux aussi faire un cron sur ton pc à toi qui exécute un petit script qui va appeler ta page php tous les x temps (mais ton pc doit être allumé), pas top non plus.

Merci de ta réponse je m'étais renseigné aussi du côté php mais cron ne me semble pas non plus la meilleure solution. Je souhaiterai que le comportement de mon api soit un peut comme un service (Apache, etc...) qui sont tout le temps en marche. Car mon script ne doit pas s'éxécuter toutes les x secondes mais tout le temps.

actuellement mon API tourne sous PHP mais je n'aime pas le fait de devoir laisser le navigateur ouvert pour que mon script s'éxécute.

set_time_limit(0);
ignore_user_abort(true);

Je ne dis pas que PHP est la meilleur option (je ne voix pas vraiment ce que apporte Node dans ton exemple), je dis juste que tu n'es pas forcé d'avoir ton navigateur ouvert.

Il suffit de lancer une fois le script et tant que le serveur tourne, le script tournera.

Node n'a rien a voir, je penser juste faire un petit panel pour lancer le script et l'arreter de manière propre. Mais si le script tourne tout le temps de manière sync je ne pourrais pas cliquer sur stopper. Mais bien sur ce n'est qu'une supposition et c'est pour ça que je demande votre avis et au passage merci pour l'astuce ;)

Ok merci, je vais chercher de ce côté alors, je laisse open ce soir pour si quelqu'un à une meilleur solution.