2013-05-09 3 views
0

Y at-il quelque chose dans Python qui vous permette d'exécuter plusieurs programmes Python simultanés pouvant potentiellement accéder à la même table de base de données et empêcher chaque programme d'utiliser le cpu complet? avoir une capacité supplémentaire restante?Exécution de plusieurs programmes Python simultanés accédant à la même table de base de données

+0

Quel logiciel de base de données allez-vous utiliser? – nacholibre

+0

Postgresql serait mon choix de base de données – Superdooperhero

+0

Eh bien essayez-le et vous verrez, les bases de données sont créées pour la lecture et l'écriture simultanées, donc je ne pense pas que vous aurez des problèmes. Le sommeil entre les requêtes peut équilibrer votre charge CPU. – nacholibre

Répondre

0

Plusieurs questions:

  1. plusieurs programmes Python simultané - voir http://wiki.python.org/moin/Concurrency, pour le début, je voudrais essayer avec le module builtin multitraitement (http://docs.python.org/2/library/multiprocessing.html)
  2. accéder à la même table de base de données - chaque processus doit créer votre propre connexion db - après que la concurrence est gérée par/ou configurée dans rdbms et/ou les options de connexion/requête. Si vous avez vraiment besoin de synchroniser les processus, l'utilisation de verrous/sémaphores pourrait vous aider.
  3. empêchent chaque programme d'utiliser le cpu complet - il dépend de ce que vos processus devraient faire, j'aller avec:
    • ayant un programme principal qui court tout le temps (processus maître), ne pauses (time.sleep, gevent.sleep ou similaires) et zones d'apparition et contrôle donné naissance à des processus (travailleurs)
    • donné naissance à des processus font le travail (travailleurs) - nouvelle connexion ouverte, faire des actions db et quitter

Je suis sûr que certains flux de travail/systèmes fournis par des modules multiprocesseurs (ou autres) c répondre à vos besoins (Travailleurs, Pools, Files d'attente, Pipes, Etats partagés, Synchronisation, ...).

+0

Merci, aura un long regard. – Superdooperhero

Questions connexes