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 :

Attendre présence d'un fichier


Sujet :

Langage Perl

  1. #1
    Membre averti
    Attendre présence d'un fichier
    Bonjour bonjour,

    J'ai créé ce post pour une question qui est potentiellement très bête.
    Voici mon "soucis" :

    J'ai un script perl qui va écrire un fichier pour qu'un script sur serveur distant et qui va attendre qu'un fichier soit écrit en retour pour recommencer.
    J'aimerais donc faire, dans mon perl, un petit wait tant que le fichier n'existe pas.

    Je sais qu'il y a toujours le fameux while(monfichier) mais j'aimerais savoir si il y a plus propre.
    Sachant que, dans ce script, j'utilise déjà des thread (au cas où ça peut aider)

    Merci d'avance

    Bisous bisous

  2. #2
    Expert confirmé
    Une suggestion, as-tu regardé du coté de Promise?
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  3. #3
    Membre averti
    Je vais regarder ça. Je dois avouer que pour le moment ça me semble un peu obscur sur comment je peux le mettre en place dans mon cas mais je me pencherais dessus

  4. #4
    Expert confirmé
    Résumons: Tu as deux scripts Perl6 sur deux machines différentes (A et B), l'un, qu'on va appeler script A, écrit un fichier localement et l'autre, qu'on va appeler script B, doit effectuer un traitement à partir des données du fichier A.
    Donc ta question est: comment faire pour que le script B attende élégamment ou détecte le fichier A?


    Quelques questions pour bien clarifier les choses:
    1. Est-ce que cette description est bien conforme à ta situation?
    2. Est-ce que le script A est lancé par le script B ou est-ce qu'il est exécuté indépendamment?
    3. Doit-on obligatoirement en passer par un fichier pour que ces données soient transmises? Car il faut vérifier à distance que le fichier A existe, certes, mais il faut aussi vérifier que celui-ci n'est pas en cours d'écriture avant de pouvoir y accéder. (D'après ce que j'ai pu voir, flock n'est pas encore implémenté en Perl6, mais on doit pouvoir faire autrement en utilisant les droits sur le fichier.)
    4. As-tu envisager d'autres manières de passer ces informations au script B ? (requête vers un serveur de base de données par exemple.)
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  5. #5
    Membre averti
    Alors pour répondre à tes questions :

    Les détails sont en effet les bons
    Le script B est lancé en même temps que le script A par un ordonnanceur
    Je ne peux passer que par un échange de fichier car il s'agira d'un répertoire partagé pour deux serveurs totalement différents (linux vs microsoft serveur) et surtout oracle vs sql serveur sachant que de linux je ne peux appeler du sql serveur et vice versa... D'où cette contrainte forte (trop) de passer par un fichier...

  6. #6
    Membre habitué
    Bonjour,

    Pas testé mais un
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    while ( !-e $fichier) { ... }
    ne fait pas l'affaire ?

  7. #7
    Membre averti
    Si bien sûr que c'est possible, mais le principe n'est pas un principe dont je raffole. Pour ça que je demandais si d'autres pistes existent en étant plus optimisées/lisible ou autre...
    Sur mon cas perso, finalement, j'ai pas eu à le faire, je n'avais plus cette contrainte de fichier

###raw>template_hook.ano_emploi###