Django-parallelized_querysets è un app Django per gestire grandi Django querysets diffondendo la loro esecuzione su più core e mantenere il basso utilizzo di memoria.
Installazione
pip installazione Django-parallelized_querysets
Utilizzo
parallelized_queryset (queryset, processi = None, funzione = None)
Elaborare il queryset data e restituire il risultato come una lista.
proceses
Numero di processi da creare. Il valore predefinito è il numero restituito da multiprocessing.cpu_count ().
funzione
Applicare una funzione ogni risultato. Non si applica alcuna funzione di default. Il primo argomento è il processo che chiama, e il secondo è la fila.
È inoltre possibile passare due ganci (funzione che sarà eseguito dal processo a volte definiti):
init_hook
Dategli una funzione prendendo il processo come argomento e verrà eseguito non appena è stato creato.
end_hook
Dategli una funzione prendendo il processo come argomento e sarà eseguire destra prima le uscite di processo. Se restituisce un valore non-None, che verrà aggiunto alla coda risultati.
& Nbsp; Note
& Nbsp; Ogni volta che la funzione restituisce None, il valore non sarà nella lista risultante.
& Nbsp; Note
& Nbsp; L'ordine del QuerySet non sarà rispettata!
Esempio
Restituisce tutti gli oggetti articolo:
>>> Da parallelized_querysets import parallelized_queryset
>>> Qs = Article.objects.all ()
>>> parallelized_queryset (QS)
Aggiungere tutti gli oggetti articolo ad un indice di Redis (ipotizzando l'articolo ha un metodo append_to_redis):
>>> Da parallelized_querysets import parallelized_queryset
>>> Qs = Article.objects.all ()
>>> Parallelized_queryset (qs, funzione = lambda p, x: x.append_to_redis ())
Fate lo stesso, ma su 6 processi:
>>> Da parallelized_querysets import parallelized_queryset
>>> Qs = Article.objects.all ()
>>> parallelized_queryset (qs, processi = 6,
& Nbsp; funzione = lambda p, x: x.append_to_redis ())
parallelized_multiple_querysets (querysets, processi = None, funzione = None)
. Stesso parallelized_queryset ma querysets è un elenco di querysets
Requisiti :
- Python
- Django
I commenti non trovato