Agora, se você está pensando em usar asyncio.sleep() em um loop para esperar constantemente por alguma condição externa … não. Enquanto você pode Faça isso, em teoria, é uma maneira desajeitada de lidar com essa situação. Passando um asyncio.Event Objeto de uma tarefa é uma abordagem melhor, permitindo que você apenas espere pelo Event Objeta para mudar.

ASYNC e E/S FILE

A E/S de rede no Async pode ser feita para não bloquear, conforme descrito acima. Mas o arquivo de arquivo local bloqueia o thread atual por padrão. Uma solução alternativa é delegar a operação de E/S de arquivo em outro tópico usando asyncio.to_thread()para que outras tarefas no loop de eventos ainda possam ser processadas.

Outra maneira de lidar aiofiles biblioteca. Isso oferece construções assíncronas de alto nível para abrir, ler e escrever arquivos-EG, async with aiofiles.open("myfile.txt") as f:. Se você não se importa de tê -lo como uma dependência em seu projeto, é uma maneira elegante de lidar com esse problema.