Admin Café Forums  

Précédent   Admin Café Forums > Les technologies Microsoft > Administration de serveurs Windows 2000/2003

Notices

Réponse
 
Outils de la discussion
  #1  
Vieux 21/08/2008, 14h40
georges.lauret georges.lauret est déconnecté
Nouveau membre
 
Date d'inscription: June 2008
Localisation: Saint-Denis
Messages: 9
Pouvoir de réputation: 0
georges.lauret est sur la bonne voie
Par défaut Parallélisation de taches dans un traitement par lots

J'ai créé un petit utilitaire "WFFE.exe", WaitForFileExist...
Problématique : cas réel que j’ai eu à traiter
J’ai un traitement par lots (CMD) qui contient :
1) Une 1ere tache T1
2) Deux taches T2 et T3 qui prennent 7 à 8 heures chacunes !
3) Une tache T4 a exécuter lorsque T2 ET T3 sont terminées.

A] Si je fais un cmd :
  • T1
  • T2
  • T3
  • T4
Cà marche mais T2 et T3 s’excécutentsuccessivement et non en parallele. Résultat + de 16 heures !

B] Si je fais :
  • T1
  • START « tache2 » T2
  • START « tache3 » T3
  • T4
Les taches T2 et T3 s’éxecutent en //, MAIS : T4 s’exécute TOUT DE SUITE (car les START n’attendent pas la fin de T2 et de T3)
Si on fait START /WAIT on retombe ds le 1er cas, aucun intérêt.

C] Euréka ! il ya WFFE
Je demande aux taches T2 et T3 de créer chacune un fichier sentinelle qui signalera leur bonne fin d’exécution. Et je fait un WFFE juste avant T4
  • T1
  • If not exist FullPath\Sentinelle1.txt START « tache2 » T2
  • If not exist FullPath\Sentinelle2.txt START « tache3 » T3
  • WFFE FullPath Sentinelle1.txt Sentinelle2.Txt
  • T4
Ici, T4 ne sera exécuté que lorsque WFFE se sera terminé. CQFD
(Evidemment T2 et T3 ont la responsabilité de créer Sentinelle1 et Sentinelle2)
(Evidemment il faudra au préalable vérifier que Sentinelle1 et Sentinelle2 n’existent pas, parcqu’on a utilisé le CMD le mois d’avant !! )
La séquence "If not exist FullPath\Sentinelle1.txt" a pour but de ne pas exécuter la tache si le fichier Sentinelle pré-existe. Cela peut arriver si vous avez interrompu les taches (reboot par ex). Les taches terminées ne se re-exécuteront pas.
De plus l’utilisation de START permet de fixer priorié (basse,haute, iddle) ou affinité de processeur(pour utiliser Multicore). L'aide de START est suffisante :
START ["titre"] [/D chemin] [/i] [/MIN] [/MAX] [/SEPARATE | /SHARED] [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
[/AFFINITY <affinité_hexa>] [/WAIT] [/b] [commande/programme] [paramètres]

NB : Si on n’a pas de MultiCore ou MultiProc : WFFE n'est d'aucun intérêt.
En effet ds le cas d’un BiProc, une tache CMD unique ne peut utiliser que l’équivalent de 100% d’un seul proc (soit 50% de l’OS). Utiliser START & WFFE permet de lancer 2 taches indépendantes sur deux procs différents.
Fichiers attachés
Type de fichier : zip wffe.zip (25,8 Ko, 1 affichages)

Dernière modification par georges.lauret ; 21/08/2008 à 14h49
Réponse avec citation
Liens Sponsorisés
  #2  
Vieux 21/08/2008, 14h47
Avatar de Pilo
Pilo Pilo est déconnecté
Administrateur
 
Date d'inscription: June 2008
Localisation: Les Avirons
Âge: 32
Messages: 387
Pouvoir de réputation: 10
Pilo est sur la bonne voie
Envoyer un message via ICQ à Pilo Envoyer un message via MSN à Pilo Envoyer un message via Skype™ à Pilo
Par défaut

après vérification, il s'avère que sur mon Windows XP Pro SP3, le START ne soit pas le même que sous un Windows 2003 !

Bien que j'ai un Dual Core, START sous Windows XP ne me permet pas de régler l'AFFINITY (ou du moins un START /? n'affiche pas le paramètre AFFINITY ! je pense donc que ça n'existe pas)

Sous mes Windows 2003 R2 par contre, AFFINITY existe...

merci pour la petite appli !
__________________
Administrateur
Réponse avec citation
  #3  
Vieux 21/08/2008, 15h09
Avatar de khamlon
khamlon khamlon est déconnecté
Membre
 
Date d'inscription: June 2008
Localisation: Paris
Messages: 77
Pouvoir de réputation: 14
khamlon est sur la bonne voie
Par défaut

autrement tu pourrais aussi faire une appli console qui lance les traitements et qui lance T4 uniquement quand T3 et T4 ont terminé ?
__________________
alex.
Consultant MOSS/WSS 3
http://blogs.codes-sources.com/alex/
Réponse avec citation
  #4  
Vieux 21/08/2008, 15h24
Avatar de Pilo
Pilo Pilo est déconnecté
Administrateur
 
Date d'inscription: June 2008
Localisation: Les Avirons
Âge: 32
Messages: 387
Pouvoir de réputation: 10
Pilo est sur la bonne voie
Envoyer un message via ICQ à Pilo Envoyer un message via MSN à Pilo Envoyer un message via Skype™ à Pilo
Par défaut

bah justement, mais comment tu sais que T2 et T3 ont terminé ?!
__________________
Administrateur
Réponse avec citation
  #5  
Vieux 21/08/2008, 15h29
Avatar de khamlon
khamlon khamlon est déconnecté
Membre
 
Date d'inscription: June 2008
Localisation: Paris
Messages: 77
Pouvoir de réputation: 14
khamlon est sur la bonne voie
Par défaut

quand tu lance un script ou une appli tu as moyen d'avoir son exit code pour savoir si le traitement a réussi ou pas, apres tu peux utiliser un event handler ou encore des threads en C#... enfin bon je connais pas trop le domaine mais je pense que c'est faisable :)
__________________
alex.
Consultant MOSS/WSS 3
http://blogs.codes-sources.com/alex/
Réponse avec citation
  #6  
Vieux 21/08/2008, 16h36
Avatar de Dambi
Dambi Dambi est déconnecté
Membre
 
Date d'inscription: June 2008
Localisation: St Denis (Moufia)
Messages: 74
Pouvoir de réputation: 14
Dambi est sur la bonne voie
Par défaut

c'est le principe du fichier "lock" qd tu programme en php. C'est sympa la méthode.
Réponse avec citation
  #7  
Vieux 21/08/2008, 16h41
georges.lauret georges.lauret est déconnecté
Nouveau membre
 
Date d'inscription: June 2008
Localisation: Saint-Denis
Messages: 9
Pouvoir de réputation: 0
georges.lauret est sur la bonne voie
Par défaut

L'avantage de WFFE par rapport à une appli console qui lance T2 et T3 c'est de ne nécessiter aucun développement supplémentaire, tout en conservant une grde flexibilité puisque c'est un script shell cmd.
J'ai préféré des fichiers sentinelle au Lock de fichier car il est plus facile de détruire un fichier que de dévérouiller un fichier en cas de pb ds les taches.
Réponse avec citation
  #8  
Vieux 21/08/2008, 20h28
Avatar de Dambi
Dambi Dambi est déconnecté
Membre
 
Date d'inscription: June 2008
Localisation: St Denis (Moufia)
Messages: 74
Pouvoir de réputation: 14
Dambi est sur la bonne voie
Par défaut

humm oki oki.
J'ai été confronté un jour a un gros probleme.

J'avais une tache qui s'executai toutes les minutes pour traiter un gros lot de data.

Un beau jour...... mon traitement a pris plus d'une minute..... et la tâche s'est relancée.... et donc a pris encore plus d'une minute et s'est encore lancée et relancée et ca a saturé le proco/ram et tout le tintouin.

ca a rodé pour brulé tout ce qui restait de mon ti serveur :)


du coup.... j'ai fais dans la programmation de ma tache, j'ai laché mon lock.
tant que ma tache n'etait pas fini mon lock été là.

et si le lock existait, et bien la tache ne pouvait plus se lancer.

ca ma bien dépanné du coup :)

Dernière modification par Dambi ; 21/08/2008 à 20h30
Réponse avec citation
  #9  
Vieux 21/08/2008, 20h50
georges.lauret georges.lauret est déconnecté
Nouveau membre
 
Date d'inscription: June 2008
Localisation: Saint-Denis
Messages: 9
Pouvoir de réputation: 0
georges.lauret est sur la bonne voie
Par défaut WFFE + Source Delphi

J'ai pensé que certains d'entre-vous pouvaient être intéressés par le source Delphi...
J'ai rajouté en plus la gestion du WFFE /? ou /help

GL
Fichiers attachés
Type de fichier : zip WFFE_Avec_source_Delphi.zip (29,0 Ko, 4 affichages)
Réponse avec citation
Réponse

Liens sociaux


Utilisateurs regardant la discussion actuelle : 1 (0 membre(s) et 1 invité(s))
 
Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 15h06.


Édité par : vBulletin® version 3.8.2
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd. Tous droits réservés.
Version française #16 par l'association vBulletin francophone