Classe AsyncioGather
La classe AsyncioGather è utilizzata per raccogliere i task da eseguire parallelamente e al termine elaborarli tutti insieme in maniera asincrona.
Per osservare qualche esempio di utilizzo fare riferimento alla pagina Esempi di utilizzo.
Metodo add
def add(self, coroutine: typing.Coroutine) -> int
Il metodo add aggiunge una funzione asincrona (coroutine) all’elenco dei task da eseguire.
Il metodo viene usato per aggiungere una funzione asincrona all’elenco dei task affinché al termine della raccolta dei task essi possano essere elaborati tutti parallelamente.
Argomenti
- coroutine: la funzione asincrona da eseguire.
Restituisce
- Il numero di task in coda.
Esempio di utilizzo
import awaitable
tasks = awaitable.AsyncioGather()
tasks.add(do_process(...))
Metodo count
def count(self) -> int
Il metodo count restituisce il numero di task in coda.
Restituisce
- Il numero di task in coda.
Esempio di utilizzo
import awaitable
tasks = awaitable.AsyncioGather()
tasks.add(do_process(...))
print(tasks.count())
Metodo run
async def run(self) -> None
Il metodo run esegue tutti i task in coda in maniera parallela.
Trattandosi di un metodo asincrono deve essere chiamato da una funzione asincrona oppure attraverso run_awaitable.
Restituisce
- Il metodo non restituisce nulla.
Esempio di utilizzo
import awaitable
async def process():
tasks = awaitable.AsyncioGather()
for _ in range(5):
tasks.add(do_process(...))
await tasks.run()