Page 1 sur 1

Script php exécuté hors apache ?

Posté : 10 juin 2011, 21:44
par Gons
Bonjour à tous,

J'ai un script php qui se connecte à plus de 18.000 pages web extérieures (d'un même site) et qui rapatrie des informations dans ma BDD (ce sont en fait des résultats sportifs pour traitement ultérieur).

Je viens de voir que pour 100 pages cela me prend 20 secondes. Je suppose qu'environ une demie-heure me sera donc nécessaire... J'aimerais savoir si l'exécution hors apache (via mon serveur dédié qui exécuterait directement du php) est possible et comment il faut faire ? Est-ce que cela accélérerait le script ? Une durée de script php qui dure une demie-heure fonctionnerait-elle ?

Merci pour vos éclaircissements !

Re: Script php exécuté hors apache ?

Posté : 11 juin 2011, 00:00
par Cyrano
Laisse-moi deviner : ton code est un genre d'aspirateur qui pique l'information sur un autre site qui ne t'appartient pas ???

Juste à cause de ça, j'ai juste envie de vomir. Donne nous donc une raison éthiquement valable de t'apporter du soutien dans ton développement.

Purée ça me saoule de voir un tel niveau : les compétences sont là, les idées possibles incommensurables, et il se trouve pourtant encore du monde pour aller pomper les idées des autres et avoir assez de culot pour venir ici demander un coup de main par dessus le marché ! :evil:

Re: Script php exécuté hors apache ?

Posté : 11 juin 2011, 00:50
par Gons
Laisse-moi deviner : ton code est un genre d'aspirateur qui pique l'information sur un autre site qui ne t'appartient pas ???

Juste à cause de ça, j'ai juste envie de vomir. Donne nous donc une raison éthiquement valable de t'apporter du soutien dans ton développement.

Purée ça me saoule de voir un tel niveau : les compétences sont là, les idées possibles incommensurables, et il se trouve pourtant encore du monde pour aller pomper les idées des autres et avoir assez de culot pour venir ici demander un coup de main par dessus le marché ! :evil:
Euh... c'est le site officiel de la fédération. Qui est pas terrible niveau résultats et j'ai des demandes d'autres joueurs qui veulent des stats poussées, où est le mal ?

Re: Script php exécuté hors apache ?

Posté : 11 juin 2011, 01:01
par Cyrano
Peut-être dans la formulation de la demande.

Est-ce que ladite fédération appuie ou non ta démarche ? Si je me fie au simple libellé de ta question de base, la réponse est « non ».

En tout état de cause, le principe même de l'aspirateur de site est à mon sens (cet avis n'engage que moi, ça va de soi) totalement opposé à une quelconque éthique.
Le résumé est simple : tout ce dont tu disposes, c'est de l'idée : mais pour le reste, tu n'as ni les droits sur le site d'origine des informations ni les compétences techniques pour la mettre en oeuvre, est-ce que je me trompe ?

Je peux volontiers concevoir que le domaine d'activité visé, quel qu'il soit, te passionne, c'est tout à fait valable. Tu souhaites te perfectionner en matière de développement, c'est tout aussi honorable et je n'ai absolument rien à y opposer. Mais en revanche le sujet traité dans ce que tu te proposes de développer est à mon avis (tout à fait personnel) à éviter et je n'ai aucune envie d'y souscrire de quelque manière que ce soit, au point que ça me fatigue assez pour que j'émette un avis public sur ce forum.

Si ton objectif est de te perfectionner en PHP, je ne serai pas le dernier à t'apporter un soutien en te faisant partager mes connaissances en la matière, mais il faudrait que le sujet et le problème technique soulevé soit acceptable.

Re: Script php exécuté hors apache ?

Posté : 11 juin 2011, 01:47
par Gons
Peut-être dans la formulation de la demande.

Est-ce que ladite fédération appuie ou non ta démarche ? Si je me fie au simple libellé de ta question de base, la réponse est « non ».

En tout état de cause, le principe même de l'aspirateur de site est à mon sens (cet avis n'engage que moi, ça va de soi) totalement opposé à une quelconque éthique.
Le résumé est simple : tout ce dont tu disposes, c'est de l'idée : mais pour le reste, tu n'as ni les droits sur le site d'origine des informations ni les compétences techniques pour la mettre en oeuvre, est-ce que je me trompe ?

Je peux volontiers concevoir que le domaine d'activité visé, quel qu'il soit, te passionne, c'est tout à fait valable. Tu souhaites te perfectionner en matière de développement, c'est tout aussi honorable et je n'ai absolument rien à y opposer. Mais en revanche le sujet traité dans ce que tu te proposes de développer est à mon avis (tout à fait personnel) à éviter et je n'ai aucune envie d'y souscrire de quelque manière que ce soit, au point que ça me fatigue assez pour que j'émette un avis public sur ce forum.

Si ton objectif est de te perfectionner en PHP, je ne serai pas le dernier à t'apporter un soutien en te faisant partager mes connaissances en la matière, mais il faudrait que le sujet et le problème technique soulevé soit acceptable.

Je suis d'accord avec toi : jamais je ne me permettrais de pomper quelconque contenu d'un site web créé par un particulier ou une société.
Toutefois, où je diffère de point de vue, c'est que je considère qu'il y a certains sites qui sont la base de l'information, des sites officiels dont l’essence même est de fournir une information qui va être reprise ailleurs sur le web, dans les journaux,...

Je prends l'exemple du moniteur belge, il est tout à fait normal de retrouver les articles de lois aux confins du web. Il y aurait, selon toi, atteinte aux droits d'auteurs ?
Je trouve que la publication des résultats sportifs est OBLIGATOIRE venant d'une fédération financée par ses membres (dont moi) et par les subsides de l'État.

Je ne fais que récolter des infos publiées et les améliorer, les mettre en perspective dans un autre contenu.

Ce que je n'accepte pas, c'est la critique acerbe et presqu'insultante alors que tu ne connaissais visiblement pas le contexte, c'est tout.

Soit, j'en reste là, bonne nuit !

Re: Script php exécuté hors apache ?

Posté : 11 juin 2011, 04:03
par devlop78
A priori oui, moins de ressources utilisées par Apache, et en plus les limitations, si je ne m'abuse, telles que la limite de temps d'execution, n'existent plus. Il y a surtout des avantages dans le sens où un cron peut facilement le lancer et que l'execution se fait avec les droits de l'executant (sauf indication contraire).

Ainsi, mon_fichier est :

#/destination_du_php

<?php

// code

et dans le shell, avec bash par exemple, tu n'as plus qu'à appeler ton executable.

Re: Script php exécuté hors apache ?

Posté : 11 juin 2011, 11:57
par Gons
A priori oui, moins de ressources utilisées par Apache, et en plus les limitations, si je ne m'abuse, telles que la limite de temps d'execution, n'existent plus. Il y a surtout des avantages dans le sens où un cron peut facilement le lancer et que l'execution se fait avec les droits de l'executant (sauf indication contraire).

Ainsi, mon_fichier est :

#/destination_du_php

<?php

// code

et dans le shell, avec bash par exemple, tu n'as plus qu'à appeler ton executable.
Merci beaucoup pour ton aide. J'ai tenté et ça a fonctionné comme sur des roulettes : 59 minutes pour remplir 870.000 lignes dans ma base. Toutefois j'ai fait 36000 insertions dans ma base. Il vaut mieux stocker mes infos dans une variable plus grosse et faire 2 insertions à la fin ? Cela serait plus rapide ? La mémoire suivrait ?

Re: Script php exécuté hors apache ?

Posté : 12 juin 2011, 11:58
par moogli
Salut,

Tu ne peux pas mettre plusieurs requete a la suite des autres (séparées par un ; ) au mieux utilise PDO et une requete préparée ;)

@+

Re: Script php exécuté hors apache ?

Posté : 12 juin 2011, 12:07
par epommate2
Les 59 minutes, c'est pour aspirer le site ou pour enregistrer les données dans la base ?

Parce que 870000 lignes en 1h, c'est très long je trouve, les données sont lourdes ?

Re: Script php exécuté hors apache ?

Posté : 12 juin 2011, 14:24
par Gons
C'est pour aspirer + inserer dans la BDD. Pour chaque page, je fais deux insertions.
Ma boucle fait donc 18.000 itérations. Comment je peux faire moins d'insertions ?
Ca fonctionne comment les requetes preparees avec PDO ?

Re: Script php exécuté hors apache ?

Posté : 12 juin 2011, 15:11
par epommate2
Personnellement, je procéderais en deux temps :
1 - aspiration des données pertinente et sauvegarde dans un fichier (par exemple, un fichier SQL qui permet d'inserer beaucoup de donnée en même temps)
2 - insertion des données dans la base

Ainsi, tu pourras voir ce qui est le plus long : je pense que c'est l'aspiration et que donc... il n'y a pas grand chose à faire, sauf a lancer plusieurs process de récupération.

Re: Script php exécuté hors apache ?

Posté : 12 juin 2011, 18:27
par devlop78
C'est vraiment important le temps ?

Sinon, tu t'en fiches, tu le lances et tu reviens 24h après ...