Mon application django s'exécute sur apache + wsgi. L'un des modules de mon application django doit charger une bibliothèque Java via jpype et cette bibliothèque Java prend beaucoup de temps à s'initialiser en raison de sa nature d'application.module d'initialisation sur django + mod_wsgi + apache
Le problème est que, pour chaque requête http traitée par django dans Apache + wsgi setup, cette bibliothèque Java est rechargée. Cependant, cela ne se produit pas lorsque je lance ma même application dans le serveur web de développement (python manager.py runserver 8000). Dans le serveur Web de développement, il ne charge qu'une seule fois la bibliothèque Java.
Est-il possible de changer la configuration d'apache ou de mod_wsgi ou mon application django pour qu'elle ne recharge pas ma bibliothèque Java pour chaque requête http?
Merci beaucoup.
Andy
Dans quelle partie de votre projet/application la bibliothèque est-elle chargée? Paramètres du projet? Dans les fichiers spécifiques à l'application? –
La bibliothèque est chargée dans l'un de mes fichiers spécifiques à l'application. Ce fichier contient une méthode statique de classe pour charger la bibliothèque java si elle n'est pas déjà chargée. – Andy
Le problème est que lors de l'utilisation de Django en production, un fichier spécifique à une application peut être importé plus d'une fois, donc votre appel à la bibliothèque Java sera plus d'une fois. J'ai eu les mêmes problèmes avec PyLucene avant qui initialisait la VM Java. Une bonne solution consiste à charger la bibliothèque dans votre fichier settings.py (qui ne doit être importé qu'une seule fois par thread wsgi), puis à faire référence à cela dans votre application. –