Python · Avançado · Inglês · Técnico
TaskGroup
Gerenciador de contexto do asyncio (3.11 ou superior) que agrupa tarefas concorrentes e garante que todas terminem antes de sair do bloco, cancelando as restantes se uma falhar.
Onde usar
É a forma recomendada de lançar várias tarefas e esperar por elas, com tratamento de erro mais seguro que o gather. Erros múltiplos saem juntos em um ExceptionGroup.
Em código
import asyncio
async def main():
async with asyncio.TaskGroup() as tg:
tg.create_task(asyncio.sleep(1))
tg.create_task(asyncio.sleep(2))
print('todas terminaram')
asyncio.run(main())Exemplos
Use a TaskGroup so a failure cancels the siblings.
Use um TaskGroup para que uma falha cancele as tarefas irmãs.
The TaskGroup waits for all tasks before leaving the block.
O TaskGroup espera todas as tarefas antes de sair do bloco.
Cuidado
Se uma tarefa do grupo falhar, as outras são canceladas; se todas precisam terminar mesmo com falhas, capture os erros dentro de cada tarefa.
Sinônimos
grupo de tarefas