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

Dotnet Discussion :

Batch avec traitements parallèles


Sujet :

Dotnet

  1. #1
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut Batch avec traitements parallèles
    Bonjour à tous,

    Je réalise un batch (une console) qui doit faire une série d'opérations des milliers de fois en 45 minutes. Ces opérations vont de la lecture d'un fichier à des requêtes http. Chaque série prend quelques dixièmes secondes (suivant la taille des requêtes http).

    En mode séquentiel, une série après l'autre les temps sont intenables. Je m'oriente donc vers des traitements parallèles.

    Pour ce faire j'encapsule les opérations dans des classes et je m'abonne à des évènements pour lancer les opérations suivantes.

    Ca marche. Sauf que de temps en temps il y a des embouteillages lors de requêtes http. Le serveur est submergé de requêtes et le délai d'attente expire. Je crois que je vais devoir faire un singleton pour gérer ces requêtes.

    Questions:
    Avez-vous une méthode particulière pour gérer ce genre de besoin?
    Existe-t-il un sytème qui peut gérer ce besoin?

    Merci de votre aide.
    "Winter is coming" (ma nouvelle page d'accueil)

  2. #2
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 97
    Points : 65
    Points
    65
    Par défaut
    Bonjour,
    le plus simple pour ne pas submerger ton serveur de requêtes et de gérer dans ton programme un nombre maximal de requêtes en simultanées. Tu peux utiliser les sémaphore pour limiter le nombre de threads simultanés qui iront faire une requête sur le serveur.

  3. #3
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    Il me semble que la solution la plus simple est de créer au départ la pile des traitements à exécuter. Puis de créer un nombre de threads fixe, chaque thread allant chercher en boucle une requête dans la pile et se terminant dès qu'il n'y en a plus de requêtes dans la pile.

    Une solution plus évoluée consiste à utiliser un thread principal qui créera au départ autant de threads secondaires que de cores disponibles, puis qui dans la suite du traitement ajoutera dynamiquement des threads secondaires supplémentaires, dès que tous les threads secondaires sont en attente (et tant que le nombre de threads secondaires ne dépasse pas un max trop élévé).
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

Discussions similaires

  1. [datastage] Boucle avec traitement parallèle
    Par blazDelParis dans le forum DataStage
    Réponses: 4
    Dernier message: 09/09/2010, 10h24
  2. Traitement batch avec wamp
    Par romu92 dans le forum Langage
    Réponses: 5
    Dernier message: 24/07/2009, 17h07
  3. lancer un batch avec CreateProcess et le réduire !!
    Par hijodelanoche dans le forum API, COM et SDKs
    Réponses: 7
    Dernier message: 25/01/2006, 14h40
  4. Problème pour dialoguer avec port parallèle
    Par jejerome dans le forum C++
    Réponses: 8
    Dernier message: 16/05/2005, 11h13
  5. Transaction et traitements parallèles
    Par jfphan dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/02/2004, 10h48

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