import asyncio
tarefas = [
{"nome":'Tarefa 1', "tempo": 3, "status" : ''},
{"nome":'Tarefa 2', "tempo" : 5, "status" : ''},
{"nome":'Tarefa 3', "tempo": 7,"status" : ''},
]
async def processa_tarefa(tarefa):
print(f'{tarefa['nome']} iniciada !')
tarefa['status'] ='Em andamento'
await asyncio.sleep(tarefa['tempo'])
tarefa['status']='Finalizado'
print(f'{tarefa['nome']} finalizada !')
async def main():
tasks = [asyncio.create_task(processa_tarefa(tarefa)) for tarefa in tarefas]
while ((tarefas[0]['status'] != 'Finalizado') or (tarefas[1]['status'] != 'Finalizado') or (tarefas[2]['status'] != 'Finalizado')) :
print(f'Status das tarefas:{tarefas[0]['status'],tarefas[1]['status'],tarefas[2]['status']}')
await asyncio.sleep(1)
await asyncio.gather(*tasks)
asyncio.run(main())