Django-parallelized_querysets er en Django app til at håndtere store Django QuerySets ved at sprede deres henrettelse på flere kerner og holde hukommelsesforbrug lav.
Installation
pip installere Django-parallelized_querysets
Anvendelse
parallelized_queryset (queryset, processer = Ingen, funktion = Ingen)
Proces den givne queryset og returnere resultatet som en liste.
proceses
Antal processer til at skabe. Defaults for antallet returneres af multiprocessing.cpu_count ().
funktion
Påfør en funktion på hvert resultat. Gælder ikke nogen funktion som standard. Det første argument er den proces, der kalder det, og den anden er den række.
Du kan også passere to kroge (funktion, der vil blive udført af processen på definerede tidspunkter):
init_hook
Giv det en funktion, idet processen som argument, og det vil blive udført på snart den er oprettet.
end_hook
Giv det en funktion, idet processen som argument, og det vil blive udføre lige før processen udgange. Hvis den returnerer en ikke-Ingen værdi, vil det blive vedlagt resultaterne køen.
& Nbsp; Note
& Nbsp; Hver gang din funktion returnerer Ingen, værdien vil ikke være i den resulterende liste.
& Nbsp; Note
& Nbsp; Rækkefølgen i QuerySet vil ikke blive overholdt!
Eksempel
Retur alle artikel objekter:
>>> Fra parallelized_querysets import parallelized_queryset
>>> Qs = Article.objects.all ()
>>> parallelized_queryset (Qs)
Tilføj alle Artikel objekter til en Redis indeks (under forudsætning af artikel har en append_to_redis metode):
>>> Fra parallelized_querysets import parallelized_queryset
>>> Qs = Article.objects.all ()
>>> Parallelized_queryset (qs, funktion = lambda p, x: x.append_to_redis ())
Gør det samme, men på 6 processer:
>>> Fra parallelized_querysets import parallelized_queryset
>>> Qs = Article.objects.all ()
>>> parallelized_queryset (qs, processer = 6,
& Nbsp; funktion = lambda p, x: x.append_to_redis ())
parallelized_multiple_querysets (querysets, processer = Ingen, funktion = Ingen)
. Samme som parallelized_queryset men querysets er en liste over QuerySets
Krav :
- Python
- Django
Kommentarer ikke fundet