ExpertiDict

Python · Avançado · Inglês · Técnico

TaskGroup

/tæsk ɡɹup/substantivo

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

Veja também

Todos os termos de Python