Django: Singleton pro Anfrage?

8

Wir haben einen Wrapper um eine SOAP-Anfrage, die wir so in unserer App verwenden:

%Vor%

Leider wird diese Instanziierung an mehreren Stellen pro Anfrage durchgeführt, was dazu führt, dass suds die WSDL-Datei erneut herunterlädt, und ich denke, wir könnten etwas Zeit sparen, indem wir bd = ByDesign() ein Singleton zurückgeben.

Da suds nicht threadsicher ist, müsste es pro Anfrage ein Singleton sein.

Der einzige Haken ist, ich möchte es so machen, dass ich keinen anderen Code als die app.wrapper.ByDesign -Klasse ändern muss, damit ich keinen Code ändern muss, der ihn aufruft. Wenn es nicht die Anforderung "Singleton pro Anfrage" gäbe, würde ich Folgendes tun:

%Vor%

Dies funktioniert jedoch nicht in einer Thread-Server-Umgebung. Irgendwelche Ideen für mich?

    
synic 04.06.2011, 01:06
quelle

1 Antwort

9

Sieh dir threading.local () an, was irgendwo zwischen dem Bösen und dem einzigen Weg liegt, Dinge in Gang zu bringen. Es sollte wahrscheinlich so etwas sein:

%Vor%

Weiterführende Literatur:

Udi 05.06.2011, 23:35
quelle

Tags und Links