IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

[langage]Synchronisation de script


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 73
    Par défaut [langage]Synchronisation de script
    Bonjour je travaille actuellement sur un projet de moteur de recherche spécialisé dans l'automobile , pour le robot ont c'est basé sur un script qui est sur ce forum en page 4 (si, si).

    Nous voudrions savoir si il existe un moyen de faire via SSH ou Telnet, tourner 4 instances du robot sur 4 pc différents les 4 robots communiquant via le net et remplissant la base de donné Mysql ?.

    J'ai fait de longue recherche sur le sujet et je n'est rien trouvé a ce propos . Je sais pas si c'est utile mais les 4pc tourne sous Windows Server 2003 enterprise edition.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 73
    Par défaut
    Personne veut m'aider

  3. #3
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 889
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 889
    Par défaut
    Salut

    Je voudrais comprendre : tu veux faire tourner le même script sur 4 PC différents ? Je vois pas ce qu'il y aurait de néfaste là dedans à priori.
    Maintenant, il ne faut pas que les 4 scripts remplissent la base de manière redondante. Mias j'ose espérer que tu as déjà prévu le coup

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 73
    Par défaut
    Oui ont a prévue le coup dans le script en lui même et aussi dans Mysql avec des closes Unique , ont est jamais trop prudent.

  5. #5
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 889
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 889
    Par défaut
    Alors, ça devrait être jouable.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 73
    Par défaut
    En parlant de doublon cette soluce m'intéresse beaucou



    http://www.developpez.net/forums/vie...er=asc&start=0


    voci le comm


    c'est a dire qu'il prend tellement de place en RAM que tu n'en as plus en quantite suffisant, donc le systeme d'exploitation passe son temps a ecrire les debordements sur disque. Ce qui pourrait ralentir le processus.

    En regardant de plus pres ton histoire de Array_Unique, tu galeres parce que tu as choisi le mauvais outil. Au lieu d'utiliser un array, utilise un hash a la place, et le probleme n'existe plus.

    Quand tu recuperes les links d'une page, tu les mets dans le hash. Attention, on doit verifier que le link n'est y psa deja, sinon deux pages qu'on spider qui pointe sur une troisieme page serait suffisant pour qu'on considere qu'on la deja vu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    my %vu;
    ...
     
        exists $vu{$_} or $vu{$_} = 1 for @startlinks;
    Ensuite, on choisi un link a partir du hash %vu qui vaut 1 (donc :qu'on vient d'inserer), et une fois qu'on le prend pour visiter, on l'incremente, qui aura comme objet d'eviter de le prendre une deuxieme fois

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        my $nbre_visite;
        do {
            $nbr_visite = 0;
            while( my $start = each %vu ) {
                if $vu{$start} == 1 ) {
                    ++$vu{$start};
                    ++$nbre_visite;
                    visite($start);
                }
            }
        } while $nbre_visite > 0;

    Si on a visite au moins un link dans la liste, on reboucle pour respiderer quelque chose d'autre. Si on ne visite rien, alors on a tout visite et on sort

    Dans ce context, tu n'as qu'a partager %vu entre tes threads, et tu crees floppee de threads sur la routine visite()

    Remarque : c'est un peu con de spiderer des images : tu ne vas pas y trouver de liens vers d'autres pages...

    N
    Par contre moi aussi j'ai pas pigé comment mettre sa dans le script

  7. #7
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Tu fais comme j'ai fait moi, et ça marche pas parce que le module HTML:arser n'est pas thread-safe...

    Sinon tu peux te bricoler quelque chose qui fait à peu près pareil que Link::Extor avec des regex pour régler le problème.
    (Pourquoi tout le monde saute mon message sans même y jeter un coup d'oeil ?)

    --
    Jedaï

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 73
    Par défaut
    Heu t'est sur sinon les regXp en question tu a une idée ??

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 73
    Par défaut

  10. #10
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 889
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 889
    Par défaut
    siaoly, peux-tu préciser ce qui te chagrine ?
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 73
    Par défaut
    Ce qui me chagrine c'est comment faire communiqué entre eux les robots par le net. Ont a aucune idée de comment faire

    Bonjour je travaille actuellement sur un projet de moteur de recherche spécialisé dans l'automobile , pour le robot ont c'est basé sur un script qui est sur ce forum en page 4 (si, si).

    Nous voudrions savoir si il existe un moyen de faire via SSH ou Telnet, tourner 4 instances du robot sur 4 pc différents les 4 robots communiquant via le net et remplissant la base de donné Mysql ?.

    J'ai fait de longue recherche sur le sujet et je n'est rien trouvé a ce propos Confused . Je sais pas si c'est utile mais les 4pc tourne sous Windows Server 2003 enterprise edition.

  12. #12
    Membre expérimenté
    Inscrit en
    Février 2005
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 167
    Par défaut
    Citation Envoyé par siaoly
    Ce qui me chagrine c'est comment faire communiqué entre eux les robots par le net. Ont a aucune idée de comment faire :?

    ...
    Nous voudrions savoir si il existe un moyen de faire via SSH ou Telnet, tourner 4 instances du robot sur 4 pc différents les 4 robots communiquant via le net et remplissant la base de donné Mysql ?.
    Telnet n'est pas adapté, ce n'est un protocole de transport de données.

    Tu as plusieurs choix : ftp, rsync, rsync sur tunnel ssh, ou scp/sftp. Le premier se gère triviallement avec Net::FTP. Les autres se gère facilement avec la fonction system() de Perl. Tu devrais utiliser des clefs RSA/DSA pour simplifier authentification dans les cas s'appuyant sur ssh.

    Tu crawles sur tes 4 PCs, et tu crées un fichier de résultat par requête, que tu dépose sur le serveur central dans un dossier fixe. Il vaut mieux créer un sous-répertoire par PC déposant, pour ne pas avoir à gérer des collisions des noms de fichiers.

    Ensuite, sur ton serveur tu écris un programme qui balaie ces répertoire à périodicité fixe pour prendre les fichiers déposés, les lire, et insérer les résultats dans la base.

    N

  13. #13
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 889
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 889
    Par défaut
    J'ajouterais à ce que dit l'excellent nematoad (bien un nom de bioinformaticien ) qu'il existe des modules gérant ssh et scp sur CPAN, donc

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

Discussions similaires

  1. Recherche langage pour des scripts
    Par Neckara dans le forum C++
    Réponses: 5
    Dernier message: 21/11/2012, 10h26
  2. Choix du langage pour un script long
    Par Charlock dans le forum Débuter
    Réponses: 1
    Dernier message: 20/08/2012, 12h45
  3. quel langage pour ce script
    Par koKoTis dans le forum Windows
    Réponses: 8
    Dernier message: 02/10/2008, 12h48
  4. Quel langage pour un script qui connecte automatiquement sur un site ?
    Par dephesity dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 13/08/2007, 11h11
  5. Réponses: 2
    Dernier message: 11/07/2002, 08h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo