2008-12-12 5 views
1

J'ai écrit une application Django qui utilise le threading Python pour créer une toile web, l'araignée fonctionne comme une série de threads pour vérifier les liens. Lorsque j'exécute cette application en utilisant le serveur de test django (intégré), l'application fonctionne correctement et les threads semblent démarrer et s'arrêter à l'heure. Cependant, en exécutant l'application sur Apache, il semble que les threads ne démarrent pas (après environ 80 secondes, il devrait y avoir une mise à jour de la base de données en file d'attente et ces changements ne se produisent pas).Code filé sur mod_python

Est-ce que quelqu'un a une idée de ce qui me manque ici? - Edit: Ma question est la suivante: comment Apache gère-t-il les applications threadées, c'est-à-dire qu'il y a une limite au nombre de threads pouvant être exécutés à partir d'une seule application?

Toute aide serait appréciée!

+0

Comment Django est-il connecté à Apache? mod_python? mod_wsgi? Mod_fastcgi? –

+0

Veuillez mettre à jour votre question avec des faits pertinents. –

Répondre

3

Il est probable qu'il vous manque la création de nouveaux processus. Apache ne fonctionnera pas en un seul processus, mais fourche de nouveaux processus pour les demandes de temps en temps (en fonction d'un dozen or so configuration parameters). Si vous exécutez django dans chaque processus, ils ne partageront pas de mémoire et les résultats produits dans un travail ne seront visibles pour aucun des autres. En outre, le processus Apache peut se terminer (au repos, ou après un certain temps), en supprimant vos résultats en mémoire.

Questions connexes