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

Scripts/Batch Discussion :

Lancer un nombre fixe de processus en parallèle sous DOS


Sujet :

Scripts/Batch

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 200
    Points : 66
    Points
    66
    Par défaut Lancer un nombre fixe de processus en parallèle sous DOS
    Bonsoir la team,

    je souhaiterais lancer X=10 processus au total tout en m'assurant que le nombre de processus en parallèle maximum est Y=3.

    Voici le bout de mon script (qui exécute pour l'instant 2 processus en parallèle) :

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    set nb_execution=2
     
    for /l %%a in (1 1 %nb_execution%) do (
     
    	start exec.bat %%a
     
    )

    Auriez-vous une piste pour m'aider svp ?

    berni.

  2. #2
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    Salut,

    soit un peu plus clair détail ce que tu veux faire avec un exemple.

    Où est ton problème ?

    A+


  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 200
    Points : 66
    Points
    66
    Par défaut
    Je voudrais lancer des processus en parallèle de façon contrôlée.

    Exemple pour 5 processus au total que je veux lancer.
    Je veux au maximum 2 processus en parallèle.

    Je lance les 2 premiers P1 et P2.
    J'attend que P1 ou P2 termine.
    Une fois qu'un des 2 termine, je lance P3.
    Etc.. jusqu'à P5.

    Est ce plus clair ?

  4. #4
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    Si tu connais plus ou moins le temps d'execution de tes programmes,
    le plus simple, si tu connais plus ou moins le temps d'execution de tes programmes, est de mettre un temporisation :

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    set nb_programme=5
    set nb_execution=2
    set $switch=1
     
    SetLocal enabledelayedexpansion
     
    for /l %%a in (1 1 %Nb_Programme%) do (
      If !$switch! LEQ %Nb_execution% (
         start P%%a.bat
         set /a $switch+=1
             ) else (
         pinglocalhost -n 10 >nul
         set $switch=1) 
     
    )

    Si cette technique n'est pas adapter il faut t'interesser au PID de chaque processus que tu envoie et temps que les PID des X processus existe
    on envoie pas le suivant :

    Pour connaître le PID d'un processus :

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @echo off
    title=Montitre
    for /f "tokens=2 delims=," %%a in ('tasklist /v /fo csv ^| findstr /i "Montitre"') do (set $PID_ID=%%a)
    echo LE PID DE CE PROCESSUS EST : %$PID_ID:~1,-1%

    A toi d'adapter pour ton problème.



Discussions similaires

  1. Lancer plusieurs processus en paralléle
    Par sabrina7 dans le forum Langage
    Réponses: 4
    Dernier message: 22/11/2007, 12h40
  2. Processus en parallèle Maven 2
    Par vain_mich dans le forum Maven
    Réponses: 4
    Dernier message: 09/08/2007, 09h36
  3. MySLQ sélectionner nombre fixe de ligne
    Par bressan dans le forum Langage SQL
    Réponses: 3
    Dernier message: 08/08/2006, 13h40
  4. Réponses: 1
    Dernier message: 02/05/2006, 00h56
  5. [DEBUTANT] Deux processus en parallèle ?
    Par alex6891 dans le forum Threads & Processus
    Réponses: 11
    Dernier message: 22/11/2005, 07h51

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