Oi! Como vai?
Seu código está muito bem estruturado. Você aplicou corretamente o uso de asyncio.gather()
para executar as tarefas de forma concorrente, o que é um conceito muito importante na programação assíncrona.
Uma dica interessante para o futuro é utilizar o método asyncio.create_task()
quando quiser iniciar tarefas que podem ser executadas em segundo plano e continuar rodando outras partes do código. Veja este exemplo:
import asyncio
async def tarefa():
print("Tarefa iniciada")
await asyncio.sleep(2)
print("Tarefa concluída")
async def main():
tarefa_1 = asyncio.create_task(tarefa())
tarefa_2 = asyncio.create_task(tarefa())
await tarefa_1
await tarefa_2
asyncio.run(main())
Esse código cria duas tarefas assíncronas que rodam simultaneamente. Usamos asyncio.create_task()
para agendar as tarefas e await
para esperar que ambas terminem.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!