J'ai créé une bibliothèque en Python qui contient des fonctions pour accéder à une base de données. Il s'agit d'une bibliothèque d'encapsulation autour d'une base de données d'applications tierces, écrite du fait que l'application tierce n'offre pas une API décente. Maintenant, je laissais à l'origine chaque fonction ouvrir une connexion à la base de données pendant la durée de l'appel de fonction, ce qui était OK, jusqu'à ce que ma logique de programme utilise des appels imbriqués vers les fonctions où j'appellerais alors une fonction particulière plusieurs milliers de fois. Ce n'était pas très performant. Le profilage a montré que la surcharge était dans la configuration de la connexion à la base de données - une fois par appel de fonction. J'ai donc déplacé la connexion ouverte de la ou des fonctions vers le module lui-même, afin que la connexion à la base de données soit ouverte lors de l'importation du module de bibliothèque. Cela m'a donné une performance acceptable.
Maintenant, j'ai deux questions à ce sujet. Premièrement, dois-je m'inquiéter de ne plus fermer explicitement la connexion à la base de données et comment pourrais-je le faire explicitement avec cette configuration? Deuxièmement, est-ce que ce que j'ai fait se rapproche du domaine des bonnes pratiques et comment pourrais-je autrement aborder cela?
openConn
fonction et demandez à l'utilisateur de la transmettre à chaque fonction qu'il appelle, de cette façon, il peut étendre la connexion dans unewith
instruction ou autre