Django-parallelized_querysets είναι Django app να χειριστεί μεγάλο Django QuerySets με τη διάδοση της εκτέλεσής τους σε πολλαπλούς πυρήνες και διατηρώντας την χαμηλή χρήση μνήμης.
installation
Pip εγκατάσταση Django-parallelized_querysets
Χρήση
parallelized_queryset (queryset, διαδικασίες = Καμία, λειτουργία = Κανένα)
Επεξεργαστείτε το δεδομένο queryset και να επιστρέψει το αποτέλεσμα ως μια λίστα.
proceses
Αριθμός διαδικασιών για τη δημιουργία. Προεπιλογές στον αριθμό που επιστρέφεται από multiprocessing.cpu_count ().
λειτουργία
Εφαρμόστε μια λειτουργία η κάθε αποτέλεσμα. Δεν ισχύει καμία λειτουργία από προεπιλογή. Το πρώτο επιχείρημα είναι η διαδικασία η οποία είναι και το call, και το δεύτερο είναι η σειρά.
Μπορείτε επίσης να περάσετε δύο άγκιστρα (λειτουργία που θα εκτελεστεί από τη διαδικασία σε καθορισμένες ώρες):
init_hook
Δώστε μια λειτουργία συνέχιση της Διαδικασίας της ως επιχείρημα και θα εκτελεστεί σε μόλις δημιουργείται.
end_hook
Δώστε μια λειτουργία συνέχιση της Διαδικασίας της ως επιχείρημα και θα εκτελέσει σωστά πριν από τις εξόδους της διαδικασίας. Αν επιστρέψει μια μη-Καμία αξία, αυτό θα προσαρτηθεί στην ουρά αποτελέσματα.
& Nbsp? Σημείωση
& Nbsp? Κάθε φορά που η λειτουργία σας επιστρέφει Κανένας, η τιμή δεν θα είναι στη λίστα που προκύπτει.
& Nbsp? Σημείωση
& Nbsp? Η σειρά με την QuerySet δεν θα πρέπει να τηρούνται!
Παράδειγμα
Επιστροφή όλα τα αντικείμενα άρθρο:
>>> Από parallelized_querysets parallelized_queryset εισαγωγής
>>> Qs = Article.objects.all ()
>>> Parallelized_queryset (QS)
Προσθήκη όλων των αντικειμένων άρθρο σε ένα δείκτη Ρέντη (υποθέτοντας ότι το άρθρο έχει μια μέθοδο append_to_redis):
>>> Από parallelized_querysets parallelized_queryset εισαγωγής
>>> Qs = Article.objects.all ()
>>> Parallelized_queryset (QS, λειτουργία = λ π, χ: x.append_to_redis ())
Κάντε το ίδιο, αλλά στις 6 διαδικασίες:
>>> Από parallelized_querysets parallelized_queryset εισαγωγής
>>> Qs = Article.objects.all ()
>>> Parallelized_queryset (QS, διαδικασίες = 6,
& Nbsp? Συνάρτηση = λ π, χ: x.append_to_redis ())
parallelized_multiple_querysets (querysets, διαδικασίες = Καμία, λειτουργία = Κανένα)
. Ίδια με parallelized_queryset αλλά querysets είναι μια λίστα των QuerySets
Απαιτήσεις :
- Python
- Django
Τα σχόλια δεν βρέθηκε