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

Django Python Discussion :

Gérer des threads


Sujet :

Django Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 16
    Par défaut Gérer des threads
    Bonjour, je souhaite savoir comment faire en sorte de gérer des threads qui sont executées lors de l'envoi de données via un formulaire.

    Le traitement étant assez long, une autre personne peut entre temps renvoyer un autre formulaire.
    Cependant il y a un problème avec la base de données car le 2ème thread crée doit attendre que le premier finisse.

    N'etant pas très à l'aise avec les thread j'aimerai bien qu'on m'explique s'il vous plait comment faire.
    Je sais qu'il faut utiliser la classe Queue mais je n'arrive pas à comprendre comment l'utiliser.

    Merci

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 756
    Par défaut
    Salut,

    Ma compréhension est que l'envoi d'un de ces formulaires induit des modifications de la base de donnée qui doivent être "sérialisés": la soumission du formulaire suivant devant attendre que...

    Plutôt que d'associer un "thread" à chaque soumission de formulaire, vous pourriez stocker le formulaire à traiter "en base".
    Un seul "thread" traitant les formulaires en attente suffirait pour "sérialiser" les traitements. Etant "unique", il n'y a pas besoin de synchronisation juste regarder le tas de formulaire en attente.

    Un autre sujet serait de pouvoir avoir une sérialisation des accès à la base s'appuyant sur la mécanique transactionnelle du SGDB => permettre de traiter plusieurs formulaire "en même temps".

    N'etant pas très à l'aise avec les thread j'aimerai bien qu'on m'explique s'il vous plait comment faire.
    Je sais qu'il faut utiliser la classe Queue mais je n'arrive pas à comprendre comment l'utiliser.
    Dans la pratique, vous devriez pouvoir répartir les traitements sur plusieurs serveurs "applicatifs" et un ou plusieurs serveurs de bases de données.

    Les threads étant des objets d'un des processus d'un de ces serveurs, les mécanismes de synchronisation associés ne sont pas applicables pour des activités qui s'exécutent dans différents processus/serveurs.

    Cordialement,
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre confirmé
    Profil pro
    Développeur Back-End
    Inscrit en
    Septembre 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Septembre 2007
    Messages : 81
    Par défaut
    Salut,

    Essaye avec django-celery. http://ask.github.com/django-celery/

  4. #4
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 16
    Par défaut
    Merci pour vos réponses.
    Je veux juste afficher ma vue pendant que le traitement est effectué et faire en sorte de mettre en attente les demandes d'envois de formulaire en passant par une queue.

    Je ne peux pas faire autrement car cela fait partie des exigences de l'applications.

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 756
    Par défaut
    Citation Envoyé par sylvie111 Voir le message
    Je veux juste afficher ma vue pendant que le traitement est effectué et faire en sorte de mettre en attente les demandes d'envois de formulaire en passant par une queue.

    Je ne peux pas faire autrement car cela fait partie des exigences de l'applications.
    L'application n'impose certainement pas "comment" est réalisée la mise en file des différents envois de formulaire. Ce "comment" est votre responsabilité.

    Une chose est sûre, les Queues de Python ne semblent pas "appropriées".
    django-celery est peut être un peu "gros".
    Une solution intermédiaire pourrait être de passer par une table ad hoc dans la BDD existante.
    Le choix est à faire en fonction:
    • durée moyenne de traitement des requêtes,
    • nombre de requêtes simultanées à traiter,
    • temps d'attente acceptable pour l'utilisateur
    • ...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 16
    Par défaut
    Les traitements peuvent durer entre 2 et 30 secondes.
    La durée moyenne serait donc de 15 secondes.

    Le nombre de requêtes simultanées doit être de 2 ou 3, mais le plus important est le nombre de requêtes pendant qu'il y a traitement et ecriture dans la base de données. Et la, on doit pouvoir être capble d'en gérer une dizaine.

    L'utilisateur doit pouvoir accéder directement à la vue après l'envois des données du formulaire. => D'ou l'utilisation de thread.

    Après ce que je veux c'est juste pouvoir mettre les thread en attente quelque part.

Discussions similaires

  1. Créer et gérer des threads
    Par Mako 5013 dans le forum Général Java
    Réponses: 3
    Dernier message: 13/02/2012, 13h39
  2. Comment BIEN gérer des threads?
    Par klakman dans le forum Threads & Processus
    Réponses: 9
    Dernier message: 24/12/2010, 18h34
  3. Gérer des ressources accaparées longtemps par un Thread
    Par fezvez dans le forum Threads & Processus
    Réponses: 4
    Dernier message: 29/07/2010, 13h18
  4. [reseaux] Gestion des threads en perl
    Par totox17 dans le forum Programmation et administration système
    Réponses: 2
    Dernier message: 28/11/2002, 09h40
  5. Programmer des threads
    Par haypo dans le forum C
    Réponses: 6
    Dernier message: 02/07/2002, 13h53

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