Ich habe Webseiten, die 10 - 20 Datenbankabfragen benötigen, um alle erforderlichen Daten zu erhalten.Ist es möglich, eine asynchrone/parallele Datenbankabfrage in einer Django-Anwendung durchzuführen?
Normalerweise wird nach dem Absenden einer Abfrage der Django-Thread/-Prozess blockiert, der darauf wartet, dass die Ergebnisse zurückkommen. Anschließend wird die Ausführung fortgesetzt, bis die nächste Abfrage erreicht wird.
Gibt es eine Möglichkeit, alle Abfragen asynchron auszuführen, damit sie von den Datenbankservern parallel verarbeitet werden können?
Ich benutze MySQL, möchte aber auch über Lösungen für andere Datenbanken erfahren. Zum Beispiel habe ich gehört, dass Postgresql eine asynchrone Client-Bibliothek hat - wie würde ich das in diesem Fall verwenden?
einen ampq Server laufen zu lassen ist nicht zwingend vorgeschrieben. Eine einfache Memcache- oder Redis-Warteschlange funktioniert einwandfrei. Ich würde MongoDB persönlich nicht empfehlen. Abgesehen von der Tatsache, dass Django-Norel weitgehend Abandonware ist (Es ist immer noch bei 1.4. 1.4 wurde 2013 EOLed, und erweiterte Supporort (Sicherheit etc) EOLed im Jahr 2015), MongoDB ist wirklich nur schneller, wenn Sie ein gewisses Maß an ACID-Compliance durch verlieren Ausführen als In-Memory-Speicher. Und meiner Meinung nach ist das eine schreckliche Sache mit Kundendaten. – Shayne
Das Redis-Backend wird derzeit als veraltet behandelt. FYI. – DylanYoung